Tôi cố gắng tạo bản sao lưu tự động (mỗi đêm ở 4) từ cơ sở dữ liệu postgresql chạy bên trong vùng chứa docker.chạy "docker run" từ crontab
#!/bin/sh
CONTAINER=`docker ps|grep name_of_container|awk '{print $1}'`
USER='postgre_user'
PASSWORD='changed'
BUDIR='/some/path/backup/'
docker run -it --link $CONTAINER:db -v $BUDIR:/backup/ -e "PGPASSWORD=$PASSWORD" pg_dump -h db -U $USER -Fc -f /backup/$(date +%Y-%m-%d-%H-%M-%S).dump
crontab của tôi trông như thế này:
0 4 * * * /path/to/script.sh
Các kịch bản hoạt động tốt khi tôi thực hiện nó bằng tay và nó cũng được thực hiện từ cron (Tôi đã thử * * * * * để gỡ lỗi).
Tôi không thể tìm ra cách làm cron và tập lệnh hoạt động cùng nhau. Cho đến nay tôi đã cố gắng:
- ghi biến để log file
- đầu ra kiểm tra từ crontab (
* * * * * [...] &>cron.log
) - đầu ra kiểm tra từ
docker exec [...] > output.log
trong kịch bản
$CONTAINER
chứa Docker id chính xác khi chạy từ cron, cron.log và output.log được tạo nhưng trống.
Bất kỳ ý tưởng nào?