мне выполнил сценарий оболочки крон.
*/5 * * * * /home/foo/backups/backup.sh
резервный сценарий:
#!/bin/bash
FILE_NAME=$(date +%Y%m%d%H%M)
PATH1="/home/foo/backups/data-$FILE_NAME.sql.gz"
pg_dump -U XXX -E utf8 --no-acl -h localhost --no-owner XXX | gzip -c > $PATH1
aws s3 cp $PATH1 s3://XXX
Крон выполняется правильно, и локальное резервное копирование создается. Но файл дампа не копируется в блок Amazon S3. Когда я работаю /home/foo/backups/backup.sh
вручную, файл передан S3.
там какая-либо причина, почему S3 cli не мог работать, когда aws s3 cp
выполняется от крона?
Cron
Cron
Не имеет много переменных среды. Значение по умолчанию Путь
переменной Cron
- это всего ли / usr / bin: / bin
. Попробуйте добавить полную команду / Path / to / the / AWS
в скрипте.
См. Этот ответ для другого решения: Cronjob не может найти переменные среды, определенные в .bashrc
, также см. Crontab Выполнение нескольких команд, но последняя команда отсутствует
Надеюсь, что это поможет