У меня есть сценарий, который я хочу запускать каждую минуту на своем веб-сервере, чтобы проверить последние 3 строки файла журнала, чтобы узнать, какое использование памяти для программы. Скрипт работает так же, как и получает правильный результат для памяти, но я не могу получить его по электронной почте или выходить - он просто зависает?Сценарий не выполняется, скорее он висит
Любые идеи о том, почему это не выходит? И это лучший подход для запуска в качестве cron на сервере, чтобы загладить последние 3 строки журнала?
#!/bin/bash
LOG=/home/user/Scripts/test.txt
SERVER=/home/user/Scripts/local/case.txt
CASE=$(head -n 1 $SERVER)
grep INFO: | grep Memory $LOG | awk '{print $9}' | tail -n 3 | while read output;
do
#echo $output
new=$(echo $output)
usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
mag=$(echo $output | awk '{ print $2 }')
if [ $new -lt 10 ]; then
echo $new
mail -s "TEST" - Alert: Memory usage is at $usep%" "[email protected]" <<< \
" \"$CASE \" - Memory usage is currently peaked to \"$mag ($usep%)\" on $(hostname) as on $(date)"
echo "email"
fi
done
Можете ли вы запустить почтовую линию в оболочке? Что делает '<<<' там? – choroba
добавьте 'set -x' чуть ниже строки' #!/Bin/bash' и запустите сценарий из командной строки, чтобы узнать, что происходит. И PLS PLS дать лучшее название на ваш вопрос. – anubhava
Извините, что вы задали вопрос – Grimlockz