W crontab zaplanowałem codzienny skrypt kopii zapasowej. Teraz, gdy cron wykonuje skrypt, status jest rejestrowany w pliku dziennika, jak pokazano poniżej.
0 0 * * * /home/backup.sh > /home/groupz/db-backup/fbackup.log 2>&1
Teraz, gdy cron wykonuje skrypt, zawartość dziennika jest odnawiana za każdym razem. Chcę więc, aby zawartość została dodana do tego samego pliku ze znacznikiem czasu wykonanego czasu i poniżej zawartości za każdym razem wraz z istniejącą zawartością. W jaki sposób mogę to zrobić.
+%d-%m-%y/%H:%M:%S
+\%d-\%m-\%y/\%H:\%M:\%S
Odpowiedzi:
dlaczego nie tylko
0 * * * * (/bin/date && /home/backup.sh) >> /var/log/backup.log 2>&1
źródło
Jak uzyskać znacznik czasu w pliku
Aby dodać znacznik czasu do pliku, możesz użyć
date
zobaczman date
więcej szczegółów. Na przykład, jeśli użyjesz w terminalu, będziesz mieć wyjście, takie jak,Dane wyjściowe mają format
dd-mm-yy/hour:min:sec
Jeśli chcesz umieścić znacznik czasu w pliku, użyj
Przekierowanie
Jeśli użyjesz,
date +%d-%m-%y/%H:%M:%S > filename
data zostanie zapisana w pliku, ale zostanie zastąpiona przy każdym użyciu polecenia. Aby dołączyć go do istniejącego pliku,Dodanie ostatniego wyniku wykonania na końcu istniejącego pliku.
Co robisz w swoim przypadku
Możesz dodać następujący wiersz na końcu swojego
/home/backup.sh
,I użyj następujących w crontab,
Myślę, że powyższa modyfikacja powinna robić, co chcesz.
źródło
(W Debian Jessie) Użyj
ts
polecenia, które jest częściąmoreutils
pakietu. Na przykład:Spowoduje to wstawienie znacznika czasu do każdego wiersza wyniku i zapisanie go w dzienniku.
źródło
moreutils
Ponieważ używasz skryptu powłoki, dlaczego nie dodać linii,
w twoim skrypcie tj. /home/backup.sh
Następnie
doda linię przed / po fbackup.log jak czw. 14 czerwca 11:10:22 UTC 2018
źródło
echo `date -u`
to samo codata -u
?Możesz dodać coś do pliku, używając dwóch z tych rzeczy „>”.
źródło