忍者ブログ
物理学者(ポスドク)による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)
このブログで初めてcrontabのことを書く〜
crontabは定期的になんらかのコマンドを走らせるときに便利、ということは度々聞いてたけど
今回始めて使うことになってしまった・・・・

今までどうしてたかというと
sleep 3600; echo "hoge"
みたいな感じで手作業で待機させて走らせていた・・・
アナログ人間的発想って感じだ・・・ 別の言い方をすると発想がおじいちゃん






自分が走らせたかったのはただのシェルスクリプト
自分のシェルで動くことは確認済

crontabを走らせる設定は以下のコマンドで書く
crontab -e
EDITORという変数を設定していないと、viとかで編集することになるので設定しておく
setenv EDITOR "emacs -nw"
まずは動作テスト
次のようにcrontabe -eで設定する
* * * * * echo "hoge" > ~/hoge.txt
これで、1分ごとにhoge.txtが更新されるはず
ls -ltなどでhoge.txtの最終更新日が確認できる


現在の設定は
crontabe -l
で表示できる

左から
[分, 0~59] [時, 0~23] [日, 1~31] [月, 1~12] [曜日, 0~7, 0=7=日曜, またはsun~satでも指定できる] [コマンド]
に対応する

コメントアウトをしたかったら、#でそのジョブを止めれる


この次に、自分のシェルスクリプトを使って動作テストをする
が、うまく動いてくれない

何が原因で動いてくれないのかはエラー出力や標準出力がないからわかりにくい
そこで、
* * * * * echo “hoge" >>~/log1.txt 2>> ~/log2.txt
のようにして、標準出力と標準エラーをファイルに書き出す
これでエラーメッセージが読めるようになる


このあとでトラブったのがPATHやLD_LIBRARY_PATHなどの環境変数の設定
crontabを実行するときは、PATHなどがすべてリセットされてほとんど空の状態になる
シェルスクリプトを動かすのに必要なのはPATHやLD_LIBRARY_PATHくらいなのでそれをセットする
セットする方法は以下のページに何種類も提案されてる

■ 参考 : cronジョブを作るのにいつものやり方でいいんですか?

■ 参考 : cron実行時の環境変数を設定

■ 参考 : シェル上だと動くのに、CRONに登録したら動かない!!!なんでだぁー!!!を解決する為の記事です。


自分はcrontabにそのまま直書きする方法にした
50 10 * * * PATH=/usr/local/bin:/usr/bin:/bin:$HOME/bin:. LD_LIBRARY_PATH=/usr/local/lib/:$HOME/local/lib/ hoge.sh >>~/log1.txt 2>> ~/log2.txt
これで動いた





(2019/06/12 追記)
crontab -rを実行して設定ファイルの爆破に成功した方へ

■ 参考 : 【crontab】のrオプションを誤って実行してしまった人向け記事






毎時15分じゃなくて、本当に15分ごとに何かを実行したいときは
*/15 * * * * PATH=/usr/local/bin:/usr/bin:/bin:$HOME/bin:. LD_LIBRARY_PATH=/usr/local/lib/:$HOME/local/lib/ hoge.sh >>~/log1.txt 2>> ~/log2.txt

■ 参考 : 時間をずらしてcronを実行する

1-56/15とすれば毎時1分, 16分, 31分, ・・・とかもできるらしい






PR
この記事にコメントする
Name
Title
Color
E-Mail
URL
Comment
Password   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
プロフィール
HN:coffee
職業:物理屋(自称)
趣味:映画鑑賞、登山
出身:大阪府の南の田舎
自己紹介:
import MyProfile
import coffee_pote from TWITTER
import amazonのほしい物リスト from WISH_LIST

print "先月子供が産まれました!"

# 最終更新 2022/10/25
カウンター
カウンター カウンター
ブログ内検索
ツイートするボタン
リンク
相互リンク募集中です (Twitterにてお知らせください)

Demo scripts for gnuplot version 5
(gnuplotのさまざまなデモ画像と作り方がまとめられている、眺めているだけでできるようになった気分になれる)

gnuplotスクリプトの解説
(米澤進吾さんの個人ページ、gnuplotと言えばこのかた)

gnuplot のページ
(Takeno Lab、うちのブログがリンクされていたのでリンク返し)

Twitterから映画の評価が分かる & 映画の鑑賞記録が残せる coco
(映画の感想をまとめられるサイト、いつもお世話になっています)

Astronomy Picture of the Day Archive
(天文や宇宙関連の最新の話題について画像とともにNASAが説明しているページ)

今日のほしぞら
(任意の時刻の空で見える星を表示してくれる、国立天文台が管理している)

GNUPLOTとアニメーション
(応用の項目の「見せてあげよう!ラピュタの雷を!!」あたりからすごすぎる)

読書メーター
(読んだ本をリストできる便利なサイト)

flickr難民の写真置き場
(20XX年、flickrは有料化の炎に包まれた。あらゆるflickr無料ユーザーは絶滅したかに見えた。 しかし、tumblr移住民は死に絶えてはいなかった。)

教授でもできるMac OS X へのLaTeX, X11, gccのインストレーションと環境設定
(阪大の山中卓さんのwebページ、タイトルにセンスが溢れている、内容は超充実してる、特にTeX関連、学振DCとかPDの申請書類作成時にはお世話になっております)

英語論文執筆用の例文検索サービス
(とんでもないものを見つけてしまった・・・・ arXivに収録されている 811,761報の 英語論文から,例文を検索するための検索エンジン)


Template "simple02" by Emile*Emilie
忍者ブログ [PR]