1/092023年1月10日URLをコピーしました!Linuxの経験も長くなり、今まで何となくcronを使っていましたが、最近になってcronの書き方(文法)について理解せずに使っていたことに気付きました。タブや半角スペースの設定ミスによって、指定した時間になっても動かないことがありました。いうのも、今まではcrontabにデフォルトで用意されているものをコピペして使っていたので、特に困ることなく動作していたからです。良い機会なので、cronの書き方について理解を深めたいと思います。目次crontabから書き方(文法)を学ぶコピペで動いていたということは、コピー元の書き方が正しいということ。)#それから、どこがタブでどこが半角スペースか、カーソールを移動させて確認してみてください。ここで1つ注意点ですが、メモ帳やテキストエディタにコピペして確認しようとすると、勝手にタブが全て半角スペースに変換されてしまいますので、必ず、vi(vim)コマンドで確認してください。タブ(tab)と半角スペース(space)の位置cronの書き方を確認した結果、日時を設定する部分は時間と日付の間はタブ、それ以外は半角スペース。日時以降は全てタブになります。1*[Space]*[Tab]*[Space]*[Space]*[Tab]ユーザー[Tab]コマンド管理者なぜか半角スペース4つでも正常に動作することがあったので、[Space][Space][Space][Space]=[Tab]なのか?と思ってます。半角スペースを1つ消してしまっても気付かないことがあるので、やはり文法はキッチリ守った方が今後のためにも良いと思います。Cronとは毎日、この時間にプログラムを実行したい!一時間に一回、検査を走らせたい!毎月一度、バックアップしたい!という感情になったことは、誰しもあるでしょう。そん...cronの設定例それでは、この書き方(文法)に従って設定してみましょう。ここでは例として、以前紹介したマイクラサーバーの自動アップデート用シェルスクリプトをcronで実行させている部分を抜粋しました。Serverを移行したので、新た...実行日時の指定方法と実行コマンドの注意cronの書き方以外にも詰まりやすいところがありますので、最後にちょっと詳しい日時の指定方法と、実行コマンドの書き方についての注意点をご紹介します。cronで実行日時を指定するcronの設定で一番悩ましいのは、日時設定ではなでしょうか。ここをきちんと理解して設定しないと、実行したい時に実行されない、もしくは実行したくないのに誤って実行されてしまう、なんてことになりかねません。指定できる数値ここでの注意点は、月によっては31日(または29、30日)が無い月があること。それと、日曜日が0と7で指定できるので、混乱しないように気を付けましょう。次に、日時の指定方法として、リストや範囲、間隔を理解し、定期的に実行する方法を知っておきましょう。分フィールドで指定した場合、10分間隔で実行リスト、範囲、間隔で指定かなり自由度が高い分、しっかり理解しておかないと、とんでもないことになりかねません。実行コマンドはフルパス(絶対パス)で!個人的に詰まってしまったのは、パスを通してない実行コマンドを使用した時です。シェルスクリプト自体はファイルパスを相対パスではなく、絶対パス(ルートディレクトリからのフルパス)指定しますが、例えばPHPコマンドでは以下のように実行しますが、そのままcronに設定しても動きません。/path/to/cron.phpこの場合、実行するファイルパスはフルパスで指定していますが、PHPコマンドはデフォルトでパスが通ってないので、こちらもフルパスで指定する必要があります。管理者whichコマンドを使えば、フルパスを簡単に調べることができます。php/usr/bin/phpこれを踏まえてcronを設定すると、このようになります。/path/to/cron.phpまた、もしもPHPのスクリプトファイルの中に、ファイルの読み書きをするような処理が含まれていたら、そのファイルパスも絶対パス(フルパス)で記述する必要がありますので気を付けましょう。以上、cronの書き方(文法)と、2つの注意点さえ気を付ければ、大体のcronは問題なく動くでしょう。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。閉じるホーム画面に追加してください!。