Debian

使用 crontab 執行 ./script.sh

  • April 7, 2021

有了Debian GNU/Linux 10 (buster),我正在使用一個簡單的腳本來保存數據庫並使用Dropbox-Uploader工具PostgreSQL將其上傳到我的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執行權限的東西。

修改你的腳本,寫下腳本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

引用自:https://unix.stackexchange.com/questions/643891