を使用して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
答え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