【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

大学でvine Linuxを利用しています。

5つのサイトのソースファイルを毎日自動収集するようなシェルスクリプトを組みたいと思っています。
(/home/name/bin/の下に日付のディレクトリを作成してその中に5つを保存します。)
本や色々なサイトを参考にして、

#!/bin/sh
d=`date +%m%d`
* 7 * * * wget -P /home/name/bin/${d}/ http://A
* 7 * * * wget -P /home/name/bin/${d}/ http://B
* 7 * * * wget -P /home/name/bin/${d}/ http://C
* 7 * * * wget -P /home/name/bin/${d}/ http://D
* 7 * * * wget -P /home/name/bin/${d}/ http://E

これをファイル.shとして保存して、 crontab /home/name/bin/ファイル.sh でcronに読み込ませたらいけるかと思ったんですがダメでした。
(crontab -eだとvimエディタになる設定のようなのでファイルを作成してから登録したいです)

初めてのシェルスクリプトで色々試しても上手くいかなくて困っています。
どなたか御指導よろしくお願いします。

A 回答 (2件)

#1 です。



"> /dev/null 2>&1" の部分ですが、
スクリプトの標準出力とエラー出力を/dev/nullに捨てるようにしています。
実行するスクリプトが標準出力等に文字列を出力すると
crontabは実行ユーザにその内容をメールで送信するので破棄するようにしました。

上記の方法だと実行エラー等の情報を受けとることができなくなるので、
スクリプト内でwget -qとしてwgetの出力を抑制し、
リダイレクト(> /dev/null 2>&1)の部分は書かない方がいいと思います。

この回答への補足

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

補足日時:2007/11/02 22:35
    • good
    • 0
この回答へのお礼

出来ました!
エラーが出ていた原因はcron.txtの
* 7 * * * /home/name/bin/sample.sh > /dev/null 2>&1
の最後に改行を入れ忘れていたという御粗末なものでした。

これを足掛かりにもう少し勉強して難しいものにも挑戦しようと思います。
bcoffeeさん、おつきあい下さりありがとうございました。

お礼日時:2007/11/03 03:10

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

この回答への補足

御世話になります。

wget用スクリプトファイルの実行は問題無く行えました。
1102という名前のファイルの中に保存されました。

次に、*/2 * * * * /home/name/bin/sample.sh > /dev/null 2>&1
のファイルを新しく作り、登録しましたがこちらは動作が確認できませんでした。
crontab -lコマンドで登録出来ていることは確認できました。

"> /dev/null 2>&1"の部分は何をさせているのか理解できませんがそのまま写してます。問題ないですよね?

補足日時:2007/11/02 21:44
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!