Linuxの「at」コマンドでタスクをスケジュールする方法【cronとの違いも解説】
はじめに
Linuxサーバーの運用において、ジョブのスケジューリングは欠かせない作業です。これまでもcronコマンドを使った定期実行の方法を紹介してきましたが、本記事ではその代替手段となるatコマンドの使い方を解説します。
cronとatの違い
cronとatの最大の違いは実行回数です。cronで登録したタスクは、再設定しなくても繰り返し実行されるのに対し、atで登録したタスクは一度だけ実行されるとスケジュールが自動的に消去されます。どちらのコマンドも用途に応じて使い分けられるため、両方をしっかり理解しておくことをおすすめします。
atdデーモンの起動確認
まず、atコマンドを利用する前に、atデーモン(atd)が動作しているかを確認しましょう。以下のコマンドを実行します。
# ps -ef | grep atd
root 8231 1 0 18:10 ? 00:00:00 /usr/sbin/atdatdが表示されない場合は、次のコマンドで起動してください。systemdを採用している最近のディストリビューションでは、systemctlコマンドを使うのが一般的です。
# /etc/init.d/atd start
# systemctl start atd (systemd環境の場合)タスクを一度だけ実行する
デーモンが正常に起動したら、atコマンドでタスクを登録できます。-fオプションで実行したいファイルを指定し、続けて実行時刻を引数として渡します。例えば、シェルスクリプト「shellscript.sh」を午後6時30分に実行したい場合は、次のように入力します。
# at -f shellscript.sh 18:30なお、atコマンドで登録したタスクは、指定時刻にshellscript.shが一度実行された後、スケジュール自体が消去されます。同じ処理を定期的に繰り返したい場合は、cronを使う方が適しています。
自然な形式での時間指定
atコマンドは、実行時刻を人間が読みやすい形式で直感的に指定できる点も大きな魅力です。例えば、以下のような書き方が可能です。
# at -f shellscript.sh 10pm tomorrow (明日の午後10時)
# at -f shellscript.sh 2:50 tuesday (火曜日の午前2時50分)
# at -f shellscript.sh 6:00 july 11 (7月11日の午前6時)
# at -f shellscript.sh 2:00 next week (来週の午前2時)登録済みジョブの確認と削除
補足として、登録済みのジョブ一覧はatqコマンドで確認でき、不要になったジョブはatrmコマンドにジョブ番号を指定して削除できます。
# atq
# atrm 5 (ジョブ番号5を削除)atコマンドを活用すれば、深夜のバックアップやメンテナンス作業など、一度きりの処理を簡単に自動化できます。ぜひ日々のサーバー管理に取り入れてみてください。
-
Linuxの「echo」コマンドとは?基本構文から実用的な活用例まで徹底解説
Linuxを始めたばかりの方でも、長年Linuxデスクトップを使い続けている方でも、一見すると意味が分かりにくいコマンドがいくつか存在します。特にコマンドラインに触れる機会が少なかった方にとってはなおさらでしょう。しかし、Linuxやその他Unix系OSの真の力は、まさにそのコマンドラインの中にこそ秘められています。 その代表格とも言えるのが、古くから親しまれてきたechoコマンドです。一見すると何の役に立つのか分かりませんが、仕組みを理解してみると、意外なほど便利なコマンドであることが分かります。 echoコマンドは何をするもの? echoのマニュアルページを見ても、詳細な説明はほとんどあ
-
Linuxのteeコマンド使い方ガイド|画面表示とファイル保存を同時に実現
Linuxシェルでパイプやリダイレクトを使っているなら、teeコマンドの出番もきっとあるはずです。teeは「標準出力に表示しながら、同時にファイルにも書き込む」ことができる便利なユーティリティです。この記事では、teeコマンドの基本操作から、sudoとの組み合わせ、追記モード、エラー出力の扱い方まで、実例を交えながら詳しく解説します。 teeコマンドとは何をするもの? まず、次のようなコマンドを見てみましょう。 ls このコマンドは、現在のディレクトリの内容を表示します。つまり、標準出力(stdout)へ出力するわけです。標準出力とは通常、画面、正確には仮想端末のディスプレイのことです