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

9

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

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

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

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

Ответы:

7

почему не просто

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

Александр перфилов
источник
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

Я думаю, что выше модификация должна делать то, что вы хотите.

souravc
источник
Это должен быть принятый ответ
Доминик
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
Hamman Samuel
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
OrangeTux
источник
2
Как насчет метки времени
user3004356