У меня есть сценарий bash, работающий в Ubuntu 18.04. Я запланировал это с помощью таймера SYSTEMD.
#!/bin/bash
backupdb(){
/usr/bin/mysqldump -u backupuser -pbackuppassword --add-locks --extended-insert --hex-blob $1 > /opt/mysqlbackup/$1.sql
/bin/gzip -c /opt/mysqlbackup/$1.sql > /opt/mysqlbackup/$1-$(date +%A).sql.gz
rm -rf /opt/mysqlbackup/$1.sql
echo `date "+%h %d %H:%M:%S"`": " $1 "- Size:" `/usr/bin/stat -c%s "${1}-$(date +%A).sql.gz"` >> /opt/mysqlbackup/backupsql.log
}
# List of databases to backup
backupdb cardb
backupdb bikedb
Когда я запускаю этот скрипт в интерактивном режиме, в журнале резервного копирования появляются 2 записи:
Jun 16 20:15:03: cardb - Size: 200345
Jun 16 20:15:12: bikedb - Size: 150123
Однако, когда это запускается как служба таймера SYSTEMD , журнал по-прежнему получает 2 записи, но размер файла в файле журнала не указан. Не 0, просто пусто. Резервный файл cardb. sql .gz создается и не равен нулю. Я могу распаковать его, и он действительно содержит действительный файл SQL.
Я не могу понять, почему это происходит.