Cron이 시작될 때 백업이 작동하지 않습니다

Cron이 시작될 때 백업이 작동하지 않습니다

어떤 이유로 백업이 시작되면 작동하지 않습니다 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

관련 정보