어떤 이유로 백업이 시작되면 작동하지 않습니다 cron
.
크론탭 항목
0 10 * * * /home/yzT/BackupDaily.sh
매일 백업.sh
#!/bin/bash
/home/yzT/Tools/FreeFileSync/FreeFileSync /home/yzT/Tools/FreeFileSync/BackupDaily.ffs_batch
에서 cron이 백업 스크립트를 실행하는 것을 볼 수 있습니다 syslog
.
Oct 20 10:00:01 debian CRON[2589]: (yzT) CMD (/home/yzT/BackupDaily.sh)
수동으로 실행하면 백업 시스템( FreeFileSystem
)이 데스크탑에 로그 파일을 생성하고 백업 디렉터리에서 업데이트된 파일을 볼 수 있습니다. 하지만 cron
로그 파일을 얻지도 못하고 업데이트도 볼 수 없습니다.
문제를 어떻게 찾거나 해결할 수 있나요?
편집하다
문제의 원인을 찾았습니다. TTY로 전환하고 스크립트를 실행하면 다음 메시지가 표시됩니다 Error: Unable to initialize GTK+, is DISPLAY set properly?
. 따라서 스크립트를 사용하는 GUI는 없지만 스크립트가 GUI 응용 프로그램에 액세스하려는 것으로 나타납니다. 이 문제를 어떻게 해결할 수 있나요?
답변1
시스템의 유일한 사용자인 경우 crontab
파일 상단에 crontab -e
편집(사용)하고 추가하면 됩니다 .DISPLAY=:0.0
또는 다음과 같이 백업 작업을 실행해 볼 수 있습니다.
/home/yzT/Tools/FreeFileSync/FreeFileSync /home/yzT/Tools/FreeFileSync/BackupDaily.ffs_batch --display=:0.0
답변2
확장자를 가진 파일.ffs_batchFreeFileSync 애플리케이션과 연결된 XML 텍스트입니다. 따라서 cron(crontab -e)에서 프로그래밍하는 두 가지 올바른 방법이 있습니다.
export DISPLAY=:0; /path_to/FreeFileSync /path_to/file.ffs_batch
또는
/path_to/FreeFileSync /path_to/file.ffs_batch --display=:0.0
"GTK+를 초기화할 수 없습니다. DISPLAY가 올바르게 설정되었습니까?" 오류는 작업을 수행하는 사람을 정의하지 않아 발생하므로 다음과 같이 지정해야 합니다.
sudo crontab -e
# or
crontab -e
작업을 수행하려면 시간/분/초/일/주/월도 지정해야 합니다. 예:
0 10 * * * export DISPLAY=:0; /path_to/FreeFileSync /path_to/task.ffs_batch
# or
@weekly export DISPLAY=:0; /path_to/FreeFileSync /path_to/task.ffs_batch
원천:미러 동기화
답변3
크론 작업에서 * 대신 1-59를 사용해야 합니다.
1 10 * * * /home/yzT/BackupDaily.sh