crontabを使用して./script.shを実行する

crontabを使用して./script.shを実行する

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

関連情報