В crontab я запланировал ежедневный скрипт резервного копирования. Теперь, когда cron выполняет скрипт, статус записывается в файл журнала, как показано ниже.
0 0 * * * /home/backup.sh > /home/groupz/db-backup/fbackup.log 2>&1
Теперь, когда cron выполняет скрипт, содержимое журнала обновляется каждый раз. Итак, я хочу, чтобы содержимое было добавлено в тот же файл с отметкой времени выполненного времени и под содержимым каждого времени вместе с существующим содержимым. Как я могу это сделать.
Как получить метку времени в файле
Чтобы добавить метку времени в файл, вы можете использовать date
, см. man date
для более подробной информации. Например, если вы используете в терминале, у вас будет вывод, например,
$ date +%d-%m-%y/%H:%M:%S
19-12-13/09:14:42
Выход будет в формате dd-mm-yy/hour:min:sec
Если вы хотите поместить метку времени в файл, используйте
date +%d-%m-%y/%H:%M:%S > filename
Перенаправление
Если вы используете date +%d-%m-%y/%H:%M:%S > filename
, тогда дата будет сохранена в файле, но будет перезаписываться при каждом использовании команды. Чтобы добавить его в существующий файл, используйте
date +%d-%m-%y/%H:%M:%S >> filename
. Он добавит последний результат выполнения в конец существующего файла.
Что вы делаете в вашем случае
Вы можете добавить следующую строку в конце вашего /home/backup.sh
,
date +%d-%m-%y/%H:%M:%S
И использовать следующее в crontab,
0 0 * * * /home/backup.sh >> /home/groupz/db-backup/fbackup.log 2>&1
Я думаю, что вышеупомянутая модификация должна делать то, что вы хотите.
Почему бы просто
0 * * * * (/bin/date && /home/backup.sh) >> /var/log/backup.log 2>&1
(в Debian Jessie) Используйте команду ts
, которая входит в пакет moreutils
. Например :
0 0 * * * /home/backup.sh | ts '[%Y-%m-%d %H:%M:%S]' > /home/groupz/db-backup/fbackup.log 2>&1
Это добавит метку времени к каждой строке вывода и сохранит ее в вашем журнале.
Так как вы запускаете сценарий оболочки, почему бы не добавить строку типа
some ./script
echo `date -u `
some ./other/script
в ваш сценарий, т.е. /home/backup.sh
Затем
0 0 * * * /home/backup.sh >> /home/groupz/db-backup/fbackup.log 2>&1
добавит строку до / после fbackup.log, например, в четверг 14 июня 11:10:22 UTC 2018
Вы можете добавить что-то в файл, используя две из этих вещей: «>».
$ echo "test" >> test.txt
$ echo "test" >> test.txt
$ cat test.txt
test
test