[英]Python Script in Crontab: rm: cannot remove, no such file or directory
我有一個在Linux 3.10.0-862.9.1.el7.x86_64 x86_64上運行的crontab。 在其中,我有一個python腳本,可打印出要刪除的某些文件,然后將其通過管道傳遞給xargs rm
。
例如,我將運行腳本python delete_these.py
,它將輸出以下內容:
/directory/to/delete1.txt
/directory/to/delete2.txt
/directory/to/delete3.txt
/directory/to/delete4.txt
這些將通過| xargs rm
刪除 | xargs rm
在同一命令提示符下運行。 所以
python delete_these.py | xargs rm
手動運行時,腳本運行良好,但是在cron上運行時,運行作業時,它將在從郵件中檢索到的stdout中返回錯誤:
rm: cannot remove '/directory/to/delete1.txt': No such file or directory
這是我在crontab中輸入的內容:
* * * * * ssh [confidential@stuff.com] python /location/where/my/python/script/is | xargs rm
我已經完成chmod +x /path/to/python/script
並將完整的命令(減去星號,但包括ssh
)放在命令行上工作正常,但是在cron上運行它會返回'沒有這樣的文件或目錄錯誤。
我確定這些文件存在,並且它們不是符號鏈接。
我已經通過附加相關的python絕對目錄( usr/bin/
)來重試它,但是它仍然不起作用。
我不知道為什么cron無法正常工作。 另一個用戶在crontab上設置的當前PATH
是該盒特定於usr/bin/stuff
的目錄。 我以為PATH
會有所不同是一個問題,但我認為在命令中指定絕對目錄時,情況並非如此。
有任何想法嗎? 我對此深感困惑
您在一台計算機上運行python
命令,而另一台計算機上運行rm
您可能應該用引號( |
)引號,這樣它就不會分開
猜測crontab行應該是:
* * * * * ssh [confidential@stuff.com] "python /location/where/my/python/script/is | xargs rm"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.