やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

crontabによる起動時実行

crontabコマンドで起動時にコマンドを実行してみた。

対象環境

前回

SSDを複数のパーティションにわけた。しかし、毎回マウントするのが面倒。

今回

crontabを使って以下を自動化した。ついでに以前できなかった日時の設定も自動化する。

  • マウント
    • /dev/sda5/usr
    • /dev/sda6/home
  • 時刻あわせ

crontab

概要

  1. ターミナルを開く
  2. crontab -lコマンドで内容を確認する
  3. crontab -eコマンドで内容を編集する
  4. 以下の内容を末尾に入力する
@reboot sudo ntpdate -u ntp.jst.mfeed.ad.jp
@reboot sudo mount /dev/sda5 /usr
@reboot sudo mount /dev/sda6 /home

テキストエディタ

crontab -eコマンドを打つと、初回のみテキストエディタの選択を迫られる。

私は適当にEnterキーを押してしまった。するとnanoというテキストエディタで編集されるようになった。

操作方法がわからずに戸惑った。終了方法だけわかっていればviよりはわかりやすいと思う。

Ctlr+Xキーで終了できる。その後、保存するか否か聞かれるのでyを入力すればよい。

crontab -e

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line indicating
# with different fields when the task will be run and what command to
# run for the task
#
# To define the time you can provide concrete values for minute (m),
# hour (h), day of month (dom), month (mon), and day of week (dow) or
# use '*' in these fields (for 'any').# Notice that tasks will be
# started based on the cron's system daemon's notion of time and
# timezones.
#
# Output of the crontab jobs (including errors) is sent through email to
# the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts at 5 a.m
# every week with: 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
# timezones.
#
# Output of the crontab jobs (including errors) is sent through email to
# the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts at 5 a.m
# every week with: 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command


^G Get Help  ^O WriteOut  ^R Read File ^Y Prev Page ^K Cut Text  ^C Cur Pos
^X Exit      ^J Justify   ^W Where Is  ^V Next Page ^U UnCut Text^T To Spell

  GNU nano 2.2.6        File: /tmp/crontab.lv8CKg/crontab                       
  • 行頭が#のものはすべてコメントである。無視してよい。
  • ^G Get Helpなどはメニューである。Ctrl+Gとするらしい。

カーソルを末尾にして、以下を追記する。

@reboot sudo ntpdate -u ntp.jst.mfeed.ad.jp
@reboot sudo mount /dev/sda5 /usr
@reboot sudo mount /dev/sda6 /home

所感

めでたくマウントの自動化ができた。

しかし、日時は設定されているかあやしい。WindowsXPマシンの日時と比べると、狂っていることが多い気がする。

まさか時刻設定ごときにこれほど苦労させられるとは思わなかった。時刻が狂うとGoogleなどのサイトにアクセスできなくなるから大問題。

今は放置したり、気づいたらコマンドを手動で打つなり、シェルスクリプトにして叩くなりしているという惨状。 もしかして10分ごとくらいの高頻度で問合せないと狂ってしまうのか?