スマートフォンやhtml5+CSS3など新技術に四苦八苦。jQuery、AjaxなどJavaScriptも難しいですね。そんなWebに悩む人のネタ帳です。

Ubuntuでcron(crontab)機能を使ってみる

Ubuntu 16.04でタスクの自動実行を設定してみます。

Windowsではタスクスケジューラで、ウイルスチェックやファイルバックアップを定期的に実行しますが、Linuxではcron機能を追加ます。

昔ながらの「/etc/cron.d/」にあるファイルを直接編集する方法もありますが、今回はcrontabコマンドを使ったタスク管理の方法を確認します。

crontabコマンドを使うことで、直接ファイルを指定して編集することなく、また、ユーザ毎に設定を編集することができます。

cronタスクの確認

$ crontab -l

crontabの設定内容の確認方法です。
基本的には初期状態では何も設定されていないはずなので、「no crontab for user」というようなメッセージが帰ってくると思います。

cronを設定する

cronを設定するには、以下のコマンドを実行します。

$ crontab -e

エディタがオープンするので、以下のフォーマットでコマンドを入力して、タスクを登録します。

# m h  dom mon dow   command
(分:1~59) (時:0~23) (日:1~31) (月:1~12) (曜日:0~6) (コマンド)

例えば、毎日午前1時にホームディレクトリのバックアップ(アーカイブ)を作成するには、以下のように設定します。

0 1 * * * tar cvfz `date "+%Y%m%d"`.tar.gz ~

アーカイブファイル名にはその日の年月日を用います。コマンドラインでは「`date +%Y%m%d`.tar.gz」と書きますが、cronに記述する際にはバックスラッシュでエスケープする必要があるようです。
処理がうまくいっていれば、以下のように、日々バックアップファイルが自動生成されるはずです。

20160101.tar.gz 20160102.tar.gz 20160103.tar.gz 20160104.tar.gz 20160105.tar.gz ...

cronの設定した内容は以下のファイルに保存されます

/var/spool/cron/crontabs/user

cron実行ログを確認する

cronが実際に実行されたかどうかは、以下のようにしてログを確認します。

$ less /var/log/syslog | grep CRON
B!

Comment

Comment Form

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Monthly Archives