Для того, чтобы знать как ведет себя скрипт выполняемый по расписанию, необходимо иметь логи.
Создадим простую функцию, которая будет записывать нам результаты выполнения скрипта
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#!/bin/bash LOGFILE="/var/log/script.log" function write_log() { while read text do LOGTIME=`date "+%Y-%m-%d %H:%M:%S"` # If log file is not defined, just echo the output if [ "$LOGFILE" == "" ]; then echo $LOGTIME": $text"; else LOG=$LOGFILE.`date +%Y%m%d` touch $LOG if [ ! -f $LOG ]; then echo "ERROR!! Cannot create log file $LOG. Exiting."; exit 1; fi echo $LOGTIME": $text" | tee -a $LOG; fi done } echo "результаты работы скрипта" | write_log | tee -a $LOGFILE |
Теперь можно проверить, что у нас записалось в лог
1 2 |
tail -f /var/log/script.log 2016-05-19 10:08:18: результаты работы скрипта |
Здравствуйте, хотел уточнить ка киспользовать даную функцию, есть скрипт с множеством функций, когда именно вызывать функцию логирования
Функцию нужно вызывать там, где это требуется.
Например есть функция, которая создает папку, куда затем будут сохраняться какие-то данные, но по той или иной причине, папка не создается, возникает ошибка и скрипт не работает, поэтому вызвать функцию логирования следует после того, как функция отработает и вернет нам какой-то ответ.
внутри функции используется переменная LOG_FILE, а перед ней LOGFILE — это ошибка?
очепятка. поправил