2017-03-18 4 views
-2

CRONTABでは、(i)端末を開き、(ii)ファイルを開き、(iii)コマンドを実行する方法がありますか?crontabがファイルを開いてコードを実行する

私がしたいことは毎日、開かれた端末です、に行くscrapy crawl xx -o test.csvコマンドを実行してください。

ボーナスの質問:crontabで私に結果(test.csv)をメールで送信できますか?

ボーナスの質問2:crontabで結果をサーバーにアップロードできますか?

+1

あなたはこれまでに何を試しましたか? –

+0

最初に端末を開こうとしましたが、コマンドを実行しようとしました。しかし、John Zwinckが私を修正したので、私はそれを試してはいけません。 –

答えて

1

はい、あなたの用語は少しオフです。私たちはcronで "ターミナルを開く"のではなく、むしろ "コマンドを実行する"。たとえば、これをあなたのcrontabに入れることができます:

00 09 * * * cd PycharmProjects/untitled/project1 && scrapy crawl xx -o test.csv 

デフォルトでは、コマンドの出力を電子メールでお送りします。あなたの代わりに添付ファイルとしてそれをしたい場合は

[email protected] 
00 09 * * * cd PycharmProjects/untitled/project1 && scrapy crawl xx 

、以下を参照してください:cron: sending output to file then EMAILing file to me

場合scrapyだけで出力ファイルを指定しない場合は、出力を印刷このことをしようとするのであれば、電子メールを介してのtest.CSVを受信しますサーバーにファイルをアップロードするためのSCPを行うことを言っている

00 09 * * * cd PycharmProjects/untitled/project1 && scrapy crawl xx -o test.csv && scp test.csv [email protected]:/some/path 
+0

パーフェクト、John Zwinckさん、ありがとうございました。コマンドをうまく実行して、私にメールしました。しかし、私は/ bin/sh:scrapy:コマンドが見つかりませんでした。パスにユーザー名を追加する必要がありますか?もしそうなら、私はどうしますか?私はそれが基本的な質問であることを知っていますが、私は本当にコーディングに新しいです。 –

+0

@AliyarÖzercan:通常のターミナルで '' scrapy'を実行すると、プログラムのフルパスが表示されます。 「治療」の代わりに、その完全な道をcronの仕事に入れてください。 –

+0

どうすればいいですか?私が 'scrap crawl xx -o test1.csv'と書くと、私はスパイダーxxをクロールします。私はそのクモの道を与えるべきですか?このように: "00 09 * * * cd PycharmProjects /無題/プロジェクト1 &&スクールクロールPycharmProjects /無題/ project1/projectx/spiders1 -o test.csv" –

0

:そのuploadコマンドは、別の&&の後にあるものは何でもあなたの代わりに実行してサーバにそれをアップロードします。 サーバーがパスワードで保護されている場合はどうなりますか?どのようにパスワードを提供しますか?

+0

これはコメントですか?とにかく、答えはパスワードなしのscpをするためにSSHキーを使うことができるということです。 SSH鍵ペアを取得したら、 'ssh-copy-id HOSTNAME'を一度だけ実行すれば、パスワードを尋ねられます。その後、scpはパスワードなしで動作します。 –

+0

John Zwinckありがとうございました。 –

関連する問題