• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:cronでwgetツールを自動化したい)

cronでwgetツールを自動化したい

このQ&Aのポイント
  • 大学でvine Linuxを利用しています。5つのサイトのソースファイルを毎日自動収集するようなシェルスクリプトを組みたいと思っています。
  • 具体的には、cronを使用してwgetツールを自動実行し、5つのサイトからソースファイルを取得します。収集したファイルは日付ごとにディレクトリに保存されます。
  • しかし、初めてのシェルスクリプトで試してもうまくいかず困っています。どなたかご指導いただけないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
noname#136147
noname#136147
回答No.1

crontab用のファイルと wget用のスクリプトファイルを別に用意してください。 ・wget用スクリプトファイル例 ===== /home/name/bin/sample.sh ===== #!/bin/sh d=`date +%m%d` wget -P /home/name/bin/${d}/ http://A wget -P /home/name/bin/${d}/ http://B wget -P /home/name/bin/${d}/ http://C wget -P /home/name/bin/${d}/ http://D wget -P /home/name/bin/${d}/ http://E ==================================== この時点でスクリプトが単独で実行できることを確認してください。 ・crontab用ファイル例 ===== /home/name/bin/cron.txt ====== * 7 * * * /home/name/bin/sample.sh > /dev/null 2>&1 ==================================== 最後にcrontabに登録します。 $ crontab /home/name/bin/cron.txt

8navi
質問者

補足

御世話になります。 wget用スクリプトファイルの実行は問題無く行えました。 1102という名前のファイルの中に保存されました。 次に、*/2 * * * * /home/name/bin/sample.sh > /dev/null 2>&1 のファイルを新しく作り、登録しましたがこちらは動作が確認できませんでした。 crontab -lコマンドで登録出来ていることは確認できました。 "> /dev/null 2>&1"の部分は何をさせているのか理解できませんがそのまま写してます。問題ないですよね?

その他の回答 (1)

noname#136147
noname#136147
回答No.2

#1 です。 "> /dev/null 2>&1" の部分ですが、 スクリプトの標準出力とエラー出力を/dev/nullに捨てるようにしています。 実行するスクリプトが標準出力等に文字列を出力すると crontabは実行ユーザにその内容をメールで送信するので破棄するようにしました。 上記の方法だと実行エラー等の情報を受けとることができなくなるので、 スクリプト内でwget -qとしてwgetの出力を抑制し、 リダイレクト(> /dev/null 2>&1)の部分は書かない方がいいと思います。

8navi
質問者

お礼

出来ました! エラーが出ていた原因はcron.txtの * 7 * * * /home/name/bin/sample.sh > /dev/null 2>&1 の最後に改行を入れ忘れていたという御粗末なものでした。 これを足掛かりにもう少し勉強して難しいものにも挑戦しようと思います。 bcoffeeさん、おつきあい下さりありがとうございました。

8navi
質問者

補足

なるほど。そういえば本に書いてありました。。 でも、結局cronを使うと動作はうまくいかないままです。 何か他に問題になりそうなところがありますでしょうか?

関連するQ&A