Я новичок в shell/bash, и я пытаюсь выполнить функцию для очистки журналов в моих файлах Oracle. Окружающая среда, в которой я работаю, должна полностью открыть все журналы, но проблема заключается в заполнении томов и не разрешении перезапуска служб. Я пытаюсь создать сценарий для запуска в качестве задания cron для поиска каталогов в зависимости от того, в какой группе они входят (каждая группа имеет несколько разные пути и имена).Запуск скрипта на основе имени хоста внутри групповой переменной
У меня есть сценарий, проходящий через «VMORDER», который циклически перемещается по перечисленным группам. Я хочу, чтобы он вытащил имя хоста. Есть ли способ для меня сказать: «Если VM принадлежит к группе (т. Е. GP1, GP2 и т. Д.), Тогда запускайте сценарий« GP1s »?
Спасибо за любую помощь, которую вы можете предоставить :).
#!/bin/bash
SCRIPTDIR=[SCRIPT DIR]
GP1="vm01 vm02"
GP2="vm03 vm04 vm05"
GP3="vm06 vm07 vm08"
VMORDER="GP1 GP2 GP3"
##DIRECTORY PATHS
VCIE_DIRECTORY=[DIRECTORY]
##FILE EXCLUSION LISTING
access_log='access.log'
admin_server='AdminServer.log'
admin_service='adminservice.log'
app_ms_1='app_ms*.log'
app_ms_2='app_ms*.out'
app_wm_1='app_ms*.log'
app_wm_2='app_ms*.out'
audit_recorder_log='DefaultAuditRecorder.log'
jms_log='jms*.log'
osb_log='osb_domain.log'
diagnostic_log='diagnostic.log'
HNAME=$(hostname | cut -d'.' -f1 | tr [:lower:] [:upper:])
find_log_rotation(){
for i in $(VMORDER)
do
clear_logs ${i}
done
}
clear_logs(){
##GP1
if [ $HNAME = GP1];
find -P $VCIE_DIRECTORY/app_ms{1..4}/logs/ -type f -not -name "$app_ms_1" -not -name "$app_ms_2" -not -name "$access_log" -not -name "$audit_recorder_log" -not -name "$jms_log" -mtime 1
fi
##GP2
if [ $HNAME = GP2];
find -P $VCIE_DIRECTORY/app_wm{1..4}/logs/ -type f -not -name "$app_wm_1" -not -name "$app_wm_2" -not -name "$access_log" -not -name "$audit_recorder_log" -not -name "$jms_log" -mtime 1
fi
##GP3
if [ $HNAME = GP3];
find -P $VCIE_DIRECTORY/AdminServer/logs/ -type f -not -name "$admin_server" -not -name "$access_log" -not -name "$access_log" -not -name "$admin_service" -not -name "$osb_domain" -mtime 1
fi
Самая большая проблема у меня пытается получить его, чтобы проверить переменные, установленные в рамках группы .. Я в принципе хочу, чтобы найти $ {HNAME} и проверьте GP1, чтобы узнать, является ли имя хоста одной из этих двух переменных в GP1. Если это правда, тогда запустите скрипт, иначе переходите к следующему скрипту. – jdspringr07