Опробованы два варианта crontab:
Код: Выделить всё
0 0 * * * /root/scripts/dev-vps_backup.sh >> logfile.log 2>&1 > /dev/null
0 0 * * * /root/scripts/dev-vps_backup.sh 2>&1 >> all.log | tee -a all.log err.log >&2
Код: Выделить всё
#!/bin/bash
set -e
#start time var
start_time=$(TZ=Asia/Calcutta date +%d-%m-%Y_%H-%M-%S)
echo "Started Script: " $(basename "$0") "@ $start_time"
#########UPDATE THIS###########
### setting up variables here
######################## END of UPDATE
#create backup folders
mkdir -p $local_backupfolder
mkdir -p $local_dumps_backupfolder
mkdir -p $local_assets_backupfolder
# remote backup storage
remote_base_backupfolder=root@$remote_IP:/root/r-backups/$vps_name
# mongodump
gzfile=$local_dumps_backupfolder/$vps_name--dump--$start_time.gz
dumpMsg="$vps_name mongodump StartTime:$start_time, EndTime:"
if mongodump --gzip --archive=$gzfile ; then ### THIS generates lines that are shown in stderr file
echo "DONE: $dumpMsg $(TZ=Asia/Calcutta date +%d-%m-%Y_%H-%M-%S)"
else
echo "ERR: $dumpMsg $(TZ=Asia/Calcutta date +%d-%m-%Y_%H-%M-%S)" | mailx -s "ERR: $vps_name mongodump" $recipient_email
exit
fi
zipMsg1="$vps_name - $app_name1 - ZIP file for folder: $local_assets_folder1. StartTime:$start_time, EndTime:"
if zip -r $local_assets_backupfolder/$vps_name--$app_name1--assets-$(TZ=Asia/Calcutta date +%d-%m-%Y_%H-%M-%S).zip $local_assets_folder1 ; then
echo "DONE: $zipMsg1 $(TZ=Asia/Calcutta date +%d-%m-%Y_%H-%M-%S)"
else
echo "ERR: $zipMsg1 $(TZ=Asia/Calcutta date +%d-%m-%Y_%H-%M-%S)" | mailx -s "ERR: $vps_name - $app_name1 - assets local ZIP" $recipient_email
exit
fi
some1-some_command # to generate error
## some more lines
Код: Выделить всё
2024-08-02T10:33:01.116+0200 writing admin.system.version to archive '/root/backups/dumps/fvc1-vps--dump--02-08-2024_14-03-01.gz'
2024-08-02T10:33:01.118+0200 done dumping admin.system.version (1 document)
2024-08-02T10:33:01.118+0200 writing myca.syslogs to archive '/root/backups/dumps/fvc1-vps--dump--02-08-2024_14-03-01.gz'
.....some more lines related to mongodump command....
/root/scripts/fvc1-vps_backup.sh: line 61: some1-some_command: command not found
ОЖИДАЕТСЯ: только последняя строка в файле err.log — это ошибка. Как мне этого добиться?
ОБНОВЛЕНИЕ
попробовал этот crontab:
Код: Выделить всё
59 11 * * * /root/scripts/fvc1-vps_backup.sh >> /root/scripts/logfile.log
Код: Выделить всё
Started Script: fvc1-vps_backup.sh @ 02-08-2024_15-29-01
DONE: fvc1-vps mongodump StartTime:02-08-2024_15-29-01, EndTime: 02-08-2024_15-29-01
adding: root/jobs/assets/ (stored 0%)
adding: root/jobs/assets/tempfiles/ (stored 0%)
...... some more lines resulting from zip command.....
adding: root/jobs/assets/invoiceDocs/ (stored 0%)
DONE: fvc1-vps - jobs - ZIP file for folder: /root/jobs/assets. StartTime:02-08-2024_15-29-01, EndTime: 02-08-2024_15-29-19
Подробнее здесь: https://stackoverflow.com/questions/788 ... n-log-file