大学で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エディタになる設定のようなのでファイルを作成してから登録したいです)
初めてのシェルスクリプトで色々試しても上手くいかなくて困っています。
どなたか御指導よろしくお願いします。
No.2
- 回答日時:
#1 です。
"> /dev/null 2>&1" の部分ですが、
スクリプトの標準出力とエラー出力を/dev/nullに捨てるようにしています。
実行するスクリプトが標準出力等に文字列を出力すると
crontabは実行ユーザにその内容をメールで送信するので破棄するようにしました。
上記の方法だと実行エラー等の情報を受けとることができなくなるので、
スクリプト内でwget -qとしてwgetの出力を抑制し、
リダイレクト(> /dev/null 2>&1)の部分は書かない方がいいと思います。
この回答への補足
なるほど。そういえば本に書いてありました。。
でも、結局cronを使うと動作はうまくいかないままです。
何か他に問題になりそうなところがありますでしょうか?
出来ました!
エラーが出ていた原因はcron.txtの
* 7 * * * /home/name/bin/sample.sh > /dev/null 2>&1
の最後に改行を入れ忘れていたという御粗末なものでした。
これを足掛かりにもう少し勉強して難しいものにも挑戦しようと思います。
bcoffeeさん、おつきあい下さりありがとうございました。
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
この回答への補足
御世話になります。
wget用スクリプトファイルの実行は問題無く行えました。
1102という名前のファイルの中に保存されました。
次に、*/2 * * * * /home/name/bin/sample.sh > /dev/null 2>&1
のファイルを新しく作り、登録しましたがこちらは動作が確認できませんでした。
crontab -lコマンドで登録出来ていることは確認できました。
"> /dev/null 2>&1"の部分は何をさせているのか理解できませんがそのまま写してます。問題ないですよね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スクリプトのエラー「unexpecte...
-
bashでシングルクォート内の変...
-
Linux 月を英語表示したい
-
シェルスクリプトで$RANDOMの値...
-
シェルスクリプト実行で”そのよ...
-
cronによるgriveの実行について
-
Linuxでシェルスクリプトがフル...
-
ldapaddコマンドでエラー
-
sudoでシェルスクリプトを実行...
-
Linuxで自作バッチファイルの置...
-
シェルスクリプトで標準エラー...
-
ロケールをutf8からsjisにする...
-
apachectl start command not f...
-
Solaris10 smuser実行時の認証...
-
Dirコマンドでフォルダ内ファイ...
-
TOPコマンドで表示するCPU使用...
-
エクセルの表にヘンな枠が・・・
-
batである文字列内に特定の文字...
-
ファイル名についている「-」と...
-
ラズパイで『’test.service’をs...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スクリプトのエラー「unexpecte...
-
bashでシングルクォート内の変...
-
シェルスクリプト実行で”そのよ...
-
Linux 月を英語表示したい
-
crontabでsql/plusの起動
-
ロケールをutf8からsjisにする...
-
Linuxでシェルスクリプトがフル...
-
自動パスワード入力でscpするス...
-
cronの@rebootでのdateコマンド...
-
sudoでシェルスクリプトを実行...
-
Cronジョブの終了時刻を簡単に...
-
Bシェルで文字列が日付として正...
-
bad interpreterで、シェルが使...
-
UNIXのbashエラーでnot a valid
-
Linuxで自作バッチファイルの置...
-
hp-uxで時間(時計)を合...
-
apachectl start command not f...
-
cronが動かない
-
cron(javaプログラム)からroot...
-
Cシェルのかっこいいプロンプト...
おすすめ情報