我在Debian上。我嘗試為 youtube-dl 做 cron 工作。它由每日腳本組成,從午夜開始。當我手動執行腳本時,一切都運作良好。但是,當我使用 cron 作業時,出現以下錯誤:
ERROR: unable to open for writing: [Errno 13] Permission denied: '/media/Video/...
cron 如下:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
@daily /usr/local/bin/youtube-dl-script.sh >> /var/mail/nextcloud 2>&1
我明白,某處有權限問題,但我不知道該如何解決。
供你參考 :
- 目標資料夾 (
/media/Video/
) 的擁有者/群組是:(www-data
所有者)、wwww-data
(群組) - 腳本的所有者/群組是:(
nextcloud
所有者),root
(群組) nextcloud
並root
屬於該組www-data
- 且目標資料夾(
/media/Video/
)權限為770
(所有者/群組可以讀取/寫入/執行,其他人不能執行任何操作)。
拜託,你能幫我嗎?我見過類似的主題,但解決方案並不成功,因為問題不完全相同。非常感謝。
編輯(舊狀態):到目前為止,我已嘗試透過遵守規則(刪除/ group擁有的副檔名和腳本)來複製資料夾youtube-dl-script.sh
中的腳本( ) 。並檢查給我這個輸出:/etc/crontab.daily
.sh
root
root
cat /etc/crontab
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
所以,正常情況下,它應該在今天早上 6:25 起作用,但它沒有!
我發現其他腳本有-x
最後一點,因此,我製作了chmod +x youtube-dl-script
.
在此之前,腳本是
-rwxr-x--- 1 root root 1682 juin 16 02:24 /etc/cron.daily/youtube-dl-script
.現在它是
-rwxr-x--x 1 root root 1682 juin 16 02:24 /etc/cron.daily/youtube-dl-script
。
我現在必須等到明天早上 6:25 才能看看這是否有效。
編輯2(當前狀態): 所以它不起作用。我什至做了這樣的chmod 755
操作,以獲得與所有其他腳本相同的權限,並且我重新啟動了伺服器,但它不起作用。
非常奇怪的是,如果我這樣做run-parts --test /etc/cron.daily
,我的腳本會被列出,所以它應該由cron.daily
如果您有任何想法,請隨時告訴我。謝謝。
答案1
好的,我已經找到解決方案了:
首先,我已將腳本移至/etc/cron.hourly
,因為沒有anacron
安裝,並且因為我想每小時使用它。但它沒有奏效。
然後我運行sudo service cron status
只是為了檢查 cron 服務是否處於活動狀態。確實如此,但我還發現了一個有趣的警告,例如your token was expired, renew your token
.所以我在網路上搜尋了這個錯誤訊息,發現我的root密碼需要更新,否則cron將無法正常運作。為了檢查這一點,我必須使用sudo chage -l root
它來顯示我的 root 密碼是expired
。
因此,我更新了我的 root 密碼,sudo passwd root
並再次檢查,sudo chage -l root
結果表明密碼現在可以了。現在,一切都運行良好,並且 cron 正在按預期工作!