나는 sudo crontab -e
이것을 가지고 있습니다 :
*/2 * * * * date >> /home/rki/test.log
*/5 * * * * sudo sh /home/rki/docker-compose-stuff/dokuwiki/backups/dokuwiki_backup.sh
*/2 * * * * date >> /home/rki/test.log
2분마다 파일에 기록하여 문제 없이 작동합니다 test.log
.
backup.sh
다음과 같은 스크립트는 실행되지 않습니다 .
#!/bin/bash
# Remove previous backups
#sudo rm dokuwiki-backup*.tar.gz
# Set backup name
name=dokuwiki-backup_$(date '+%Y-%m-%d-%H%M%S')
# Backup stuff
/bin/tar -zcvf "$name.tar.gz" /var/lib/docker/volumes/dokuwiki_data
sudo sh dokuwiki_backup.sh
문제 없이 잘 지낼 수 있어요 . Bash 스크립트는 chmod
ed 0777
및 chown rki:rki
.
내가 뭘 잘못하고 있는 걸까요?
답변1
를 통해 cronjob을 추가 sudo crontab -e
하면 root
.
필요하지 않습니다
sudo
. 다음을 사용하십시오.*/5 * * * * /bin/sh /home/rki/docker-compose-stuff/dokuwiki/backups/dokuwiki_backup.sh
기본 작업 디렉토리는
root
s 여야 하므로$HOME
일반적으로/root
. 거기에서 찾을 수 있습니다$name.tar.gz
. 그러나 절대 경로를 사용하는 것이 더 좋습니다. 예:/bin/tar -zcvf "/home/rki/Backups/$name.tar.gz" /var/lib/docker/volumes/dokuwiki_data
답변2
전체 루트 환경에서 cronjob을 실행하려면 이 명령을 사용하십시오.
*/5 * * * * su - root -c '/home/rki/docker-compose-stuff/dokuwiki/backups/dokuwiki_backup.sh'