Как добавить журналы в crontab с отметкой времени

В crontab я запланировал ежедневный скрипт резервного копирования. Теперь, когда cron выполняет скрипт, статус записывается в файл журнала, как показано ниже.

0 0 * * * /home/backup.sh > /home/groupz/db-backup/fbackup.log 2>&1  

Теперь, когда cron выполняет скрипт, содержимое журнала обновляется каждый раз. Итак, я хочу, чтобы содержимое было добавлено в тот же файл с отметкой времени выполненного времени и под содержимым каждого времени вместе с существующим содержимым. Как я могу это сделать.

9
задан 16 December 2013 в 16:23

5 ответов

Как получить метку времени в файле

Чтобы добавить метку времени в файл, вы можете использовать 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
ответ дан 16 December 2013 в 16:23

Почему бы просто

0 * * * * (/bin/date && /home/backup.sh) >> /var/log/backup.log 2>&1

0
ответ дан 16 December 2013 в 16:23

(в Debian Jessie) Используйте команду ts, которая входит в пакет moreutils. Например :

0 0 * * * /home/backup.sh | ts '[%Y-%m-%d %H:%M:%S]' > /home/groupz/db-backup/fbackup.log 2>&1  

Это добавит метку времени к каждой строке вывода и сохранит ее в вашем журнале.

0
ответ дан 16 December 2013 в 16:23

Так как вы запускаете сценарий оболочки, почему бы не добавить строку типа

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

0
ответ дан 16 December 2013 в 16:23
  • 1
    @A.B. Я нахожусь в процессе изучения его все еще, но мне действительно нравится он. Очень мощные команды для него и сценарии не имеют очень трудного для понимания структуры к нему. =) – Terrance 7 July 2015 в 18:53

Вы можете добавить что-то в файл, используя две из этих вещей: «>».

$ echo "test" >> test.txt
$ echo "test" >> test.txt

$ cat test.txt
test
test
0
ответ дан 16 December 2013 в 16:23

Другие вопросы по тегам:

Похожие вопросы: