Як додати журнали до crontab із позначкою часу


9

У crontab я запланував щоденний сценарій резервного копіювання. Тепер, коли cron виконує скрипт, статус записується у файл журналу, як показано нижче.

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

Тепер, коли cron виконує скрипт, вміст журналу оновлюється щоразу. Отже, я хочу, щоб вміст було додано в один і той же файл із позначкою часу на виконаний час і нижче вмісту кожного разу разом із наявним вмістом. Як я можу це зробити.


Не забувайте уникати символу "%" у вашому кронтабі! +%d-%m-%y/%H:%M:%SСтав би:+\%d-\%m-\%y/\%H:\%M:\%S
Вільмаріон

Відповіді:



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

Я думаю, що вищевказана модифікація повинна робити те, що ви хочете.


Це має бути прийнята відповідь
Домінік

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  

Це додасть позначку часу до кожного рядка виводу та збереже його у вашому журналі.


1
Не працювало для мене, я використовую Ubuntu 16.04. Я встановивmoreutils
Хамман Самуель

0

Оскільки ви використовуєте скрипт оболонки, чому б не додати рядок типу,

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 `date -u`те саме, що data -u?
Стівен Рауч

Відлуння додає розрив лінії AIUI.
pbhj

-2

Ви можете додати щось до файлу за допомогою двох із цих речей '>'.

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

$ cat test.txt
test
test

2
Як щодо часової позначки
user3004356
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.