在CRONTAB中,有沒有辦法(i)打開終端,(ii)打開文件,然後(iii)執行命令?crontab打開文件並執行代碼
我想要做的是每天打開終端,去PycharmProjects/untitled/project1
執行命令scrapy crawl xx -o test.csv
。
獎金問題:crontab可以給我發電子郵件(test.csv)嗎?
獎金question2:可以crontab上傳結果到服務器?
在CRONTAB中,有沒有辦法(i)打開終端,(ii)打開文件,然後(iii)執行命令?crontab打開文件並執行代碼
我想要做的是每天打開終端,去PycharmProjects/untitled/project1
執行命令scrapy crawl xx -o test.csv
。
獎金問題:crontab可以給我發電子郵件(test.csv)嗎?
獎金question2:可以crontab上傳結果到服務器?
是的,但您的術語有點偏離。我們不是在cron中「打開終端」,而是「運行一個命令」。例如,你可以把它放在你的crontab中:
00 09 * * * cd PycharmProjects/untitled/project1 && scrapy crawl xx -o test.csv
默認情況下,Cron會通過電子郵件向你發送命令的輸出。所以如果不給一個輸出文件通過電子郵件收到test.csv,如果scrapy將只打印輸出,試試這個:
[email protected]
00 09 * * * cd PycharmProjects/untitled/project1 && scrapy crawl xx
如果你想要,而不是作爲附件,請參閱:cron: sending output to file then EMAILing file to me
如果你不是想將它上傳到服務器,運行不管它上傳命令是層出不窮&&
:
00 09 * * * cd PycharmProjects/untitled/project1 && scrapy crawl xx -o test.csv && scp test.csv [email protected]:/some/path
非常好,非常感謝John Zwinck。它很好地執行了命令並通過電子郵件發送給我。但是我收到/ bin/sh:scrapy:command not found。我應該將用戶名添加到路徑中嗎?如果是這樣,我該怎麼做?我知道這是一個基本問題,但我對編碼非常陌生。 –
@AliyarÖzercan:在一個普通的終端上運行'scrapy',它會告訴你程序的完整路徑。將完整的路徑放在cron作業中,而不僅僅是「scrapy」。 –
我該怎麼辦?因爲當我編寫'scrapy crawl xx -o test1.csv'時,我說爬蜘蛛xx。我應該給蜘蛛的路徑嗎?像這樣:「00 09 * * * cd PycharmProjects/untitled/project1 && scrapy crawl PycharmProjects/untitled/project1/projectx/spiders/spider1 -o test.csv」 –
你說要上傳文件到服務器做SCP。 但如果服務器受密碼保護會怎樣。你如何提供密碼?
這是否意味着評論?無論如何,答案是你可以使用SSH密鑰來做無密碼的scp。一旦你有一個SSH密鑰對,只需簡單地運行'ssh-copy-id HOSTNAME',它會要求你輸入密碼。之後,scp將無需密碼即可運行。 –
謝謝John Zwinck。 –
你到目前爲止嘗試過什麼? –
我試圖先打開終端,然後嘗試執行命令。但正如John Zwinck糾正我的情況,我不應該這樣做。 –