Incron 不會執行腳本,但 Cron 會執行,權限被拒絕

Incron 不會執行腳本,但 Cron 會執行,權限被拒絕

我有一個簡單的腳本來運行 rclone。它可以從根命令列正確執行。當常規 cron 作業呼叫時,它也能正確執行。該腳本的權限設定為root/root 0755,即可執行。 (rclone 也是如此。)

以下行是由以下指令設定incrontab -e並確認的incron 作業icrontab -l

/var/vhosts/localdir IN_ALL_EVENTS /bin/rclonescript.sh

以下是我從命令列或常規 cron 作業運行的腳本:

#!/bin/bash
/usr/sbin/rclone copy /var/vhosts/localdir mygoogledrive:uploadfolder

這是以下的輸出tail -f /var/log/cron

Mar 16 18:45:55 localhost incrond[8215]: (root) CMD (/bin/rclonescript.sh)

輸出看起來不錯,但腳本未運行。

這是從 cron 作業成功呼叫腳本時 cron 日誌的外觀* * * * * /bin/rclonescript.sh

Mar 16 18:59:01 localhost CROND[9070]: (root) CMD (/bin/rclonescript.sh)

日誌實際上是相同的,但 cron 作業有效。英克朗則不然。

我嘗試在腳本中設定路徑,首先檢查:

[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

....然後將路徑新增到腳本中,如下所示:

#!/bin/bash
Path=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin   
/usr/sbin/rclone copy /var/vhosts/localdir mygoogledrive:uploadfolder

當我嘗試將此作為 inclone 作業時:

/var/vhosts/anne_scan IN_ALL_EVENTS,IN_NO_LOOP /bin bash rclonescript.sh

或者

/var/vhosts/anne_scan IN_ALL_EVENTS,IN_NO_LOOP /bin rclonescript.sh

它會導致權限被拒絕:

Mar 17 09:00:27 localhost incrond[24917]: cannot exec process: Permission denied

答案1

sudo在命令前面添加,如下所示:

/var/vhosts/watcheddir IN_ALL_EVENTS,IN_NO_LOOP sudo /bin/sh /bin/yourscript.sh

像這樣選擇使用者:

/var/vhosts/watcheddir IN_ALL_EVENTS,IN_NO_LOOP sudo -u username /bin/sh /bin/yourscript.sh

相關內容