을 사용하여 Debian GNU/Linux 10 (buster)
간단한 스크립트를 사용하여 PostgreSQL
데이터베이스를 저장하고 내 Dropbox
계정 에 업로드합니다.Dropbox 업로더도구. 저는 이 작업을 예약하는 데 사용합니다 crontab
.
프롬프트에서 직접 스크립트를 실행하면 모든 것이 잘 작동하고 잘 실행되지만 crontab에서 실행하면 업로드 작업이 실행되지 않습니다( ./dropbox_uploader.sh -d upload
).
실행 권한에 뭔가가 빠졌나요?
스크립트(my_script.sh)
#!/bin/bash
# Database dump
pg_dump -U postgres -d my_database > /home/my_user/`date +%Y%m%d`_my_database.sql
# Upload to Dropbox
./dropbox_uploader.sh -d upload /home/my_user/`date +%Y%m%d`_my_database.sql `date +%Y%m%d`_my_database.sql
권한
ls -l my_script.sh
-rwxr-xr-x 1 my_user my_user 732 Apr 7 09:19 my_script.sh
getfacl my_script.sh
# file: my_script.sh
# owner: my_user
# group: my_user
user::rwx
group::r-x
other::r-x
ls -l dropbox_uploader.sh
-rwxr-xr-x 1 root root 52481 Apr 6 16:01 dropbox_uploader.sh
getfacl dropbox_uploader.sh
# file: dropbox_uploader.sh
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
크로나
0 9 * * * /bin/sh /home/my_user/my_script.sh
나는 이것을 읽었다우편 엽서이우편 엽서dropbox_uploader.sh
, 실행 권한 이 누락된 것 같습니다 .
답변1
스크립트를 수정하고 dropbox_uploader.sh 스크립트의 전체 경로를 작성하세요.
#!/bin/bash
# Database dump
pg_dump -U postgres -d my_database > /home/my_user/`date +%Y%m%d`_my_database.sql
# Upload to Dropbox
/home/my_user/dropbox_uploader.sh -d upload /home/my_user/`date +%Y%m%d`_my_database.sql `date +%Y%m%d`_my_database.sql