いますぐ実践! Linuxシステム管理

[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.040 / 読者数:648名

こんばんは、うすだです。

いつの間にか、12月も中盤を過ぎ、今年もあと少しとなりました。

このメルマガも、今週で、年内の発行はおわりにしようと思います。

25日に発行しても、実際に試すヒマがないかもしれませんし、そうでなくても、 年賀状やら大掃除やらに、 少しでも時間を割り当てたいところではないかと思います。
それに、お正月くらい、のんびりと過ごしたいですしね。

…というのは、もちろん、たてまえです。(本音もまじってますが。)

ここだけの話、27日までに仕上げないとしゃれにならない案件がありますので、 来週は発行している場合じゃないぜ、という状態なのです。

今週も、ほんとは、メルマガ書くよりも、コード書け! 動かせ! 的な状態なのですが、 しりきれとんぼで年を越すのもどうかと思いまして、必死で書いている次第です。

このメルマガ、驚くくらい読者の方からの反応がないのですが、 いまだに読者数が減少せず微増しているということから、 毎週ちゃんと読んでいる方がいらっしゃるに違いない、と前向きにとらえ、 今週くらいは歯を食いしばって書こう、などと思ってしまったのでございます。

それでは、今年最後だと思って、はりきってまいりましょう!

今週のお題 - 決められた時間にコマンドを動かす

そんなこんなの事情により、今週は、 いっそう微妙な感じの内容でお送りしております。 そんな思いを汲み取って、読んでいただければ幸いです。

さて、オブラートにつつまれたようなお題ですが、お察しな方はお察しの通り、 今週のお題は、at です。

at といっても、モデムのコマンドではありませんよ。

…い、いや、気にしないでください。忘れてください…。

さ、さて、定期的に何かを動かすものといえば、以前に取り上げた cron ですが、 at は、決まった時間に一発だけ実行したい、というときに使います。

例えば、16:45 に、date > $HOME/z というコマンドを実行したい場合、 時刻を引数にして、以下のように at コマンドを実行します。

  % at 16:45
  at> date > $HOME/z
  at> <=== Ctrl+d を押下
  job 1 at 2005-12-17 16:45

上記の場合、job番号 1 を 16:45 に実行するよ、とおっしゃってくださいました。
(ちなみに、job番号は、そのときによって違います。)

実際に実行されたかどうか、16:45 を過ぎてから、確認してみましょう。

  % ls -l ~/z
  -rw-r--r--    1 usu    adm        37 Dec 17 16:45 /home/usuda/z
  % cat ~/z
  2005年 12月 17日 土曜日 16:45:00 JST

ファイルが作成されていますので、ちゃんと実行されたようです。

その日ではなく、違う年月日を指定したい場合は、MM/DD/YY の形式で、 年月日を付加して実行します。(他の形式もありますが、割愛します。)
例えば、以下の場合は、2005年12月18日 18:00 を指定しています。

% at 18:00 12/18/05 また、実行結果をメールで通知して欲しい場合は、-m オプションをつけて 実行します。出力結果がメールでわかるので、便利なオプションです。
  % at -m 18:00 12/18/05

登録したけどいつなにが実行されるんだっけ? という場合には、 atq というコマンドを実行しましょう。
以下のように、登録中の job番号と日時を、一覧で出力してくれます。

  % atq
  2        2005-12-18 18:00 a usu

実行される内容も知りたい場合は、-c オプションつきで at コマンドを実行します。 (atq じゃないところが不思議ですねー。)
-c オプションを使うには job番号を付加します。
以下の例では、job番号 2 の内容を確認しています。

  % at -c 2
  ...前略
  echo test | Mail -s test usu

前略の部分は、登録したときに設定されていた環境変数などを、 設定するための命令が、ずらずらっと並びます。
(意識して環境変数などを使わないなら、気にしなくていいと思います。)

登録したけど、やっぱりやめたくなったら、 atrm コマンドでキャンセルすることができます。
job番号を引数に指定して atrm コマンドを実行すると、 指定した job番号がキャンセルされます。

  % atq
  2        2005-12-18 18:00 a usu
  3        2005-12-18 19:00 a usu
  % atrm 2
  % atq
  3        2005-12-18 19:00 a usu

以上、at の使い方を、ひと通りご説明しました。
実際、どんなとき使えそうか、わたしなりに考えてみました。

  • 停電などのために、決まった時間にサーバを停止させる。
    at コマンドで shutdown を登録すれば、そのとき会社に行けない場合でも、 停止させることができます。
  • アポのちょっと前に、自分宛にメールする。
    大事な約束があるとき、その時間のちょっと前に、自分宛にメールすると、 うっかり忘れるなんていうことを避けられると思います。

ど、どうでしょうか。お役に立てますと、幸いです。

最後になりましたが、at と同様のコマンドに、batch コマンドというものがある、 ということについて、少々触れておきます。

batch コマンドは、マシンの負荷が低いときを見計らって実行してくれる以外は、 at とほぼ同じです。優先度の低い仕事や、 マシンに負荷をかける仕事をさせる必要のあるとき、at の代わりに使うと、 やや便利なのではないか、と思います。

…ほんとに少々でした。
それはともかく、難易度はそれほどでもないと思いますので、まずは気軽に、 date > $HOME/z あたりを試してみてください。

宿題の答え

先週の宿題は、

  ディレクトリに対して、ファイルの属性を設定すると、どのような効果
  があるでしょうか?

でした。

若干想定のしにくい、属性 i と a あたりを、調べてみました。
まず、属性 i の場合は、そのディレクトリ以下の変更が、一切できなくなります。 (具体的には、ファイルの作成や削除ができなくなります。)

  # ls dir
  a  b
  # chattr =i dir

としますと、以下のように、新たに dir/c というファイルを作成しようとしても、 すでにある dir/a を削除しようとしても、拒否されます。

  # touch dir/c
  touch: `dir/c' を読み込み中です: 許可がありません
  # rm dir/a
  rm: `dir/a' を削除しますか(yes/no)? y
  rm: リンク `dir/a' を削除できません: 許可がありません

ただし、ファイルそのものの変更は、可能です。

  # echo aaa >> dir/a
  # echo aaa > dir/a

次に、属性 a の場合は、ファイルを新たに作成する(追加)ことはできますが、 ファイルの削除はできなくなります。

  # chattr =a dir
  # touch dir/c
  # ls dir
  a  b  c
  # rm dir/a
  rm: `dir/a' を削除しますか(yes/no)? y
  rm: リンク `dir/a' を削除できません: 許可がありません

また、ディレクトリに対して属性を設定すると、その後、 その下で作成をされるファイルには、属性が継承されます。

  # mkdir foo
  # touch foo/old
  # chattr =a foo
  # touch foo/file
  # mkdir foo/dir
  # lsattr foo
  ------------- foo/old
  -----a------- foo/file
  -----a------- foo/dir

chattr を実行する前から存在する foo/old の属性は、 chattr 実行後も変わりません。 ですが、chattr 実行後に作成した foo/file や foo/dir は、 最初から同じ属性が設定されます。

ちなみに、ディレクトリ以下の属性を、一気に変更したいときは、 chattr コマンドに -R オプションをつけて実行します。

  # chattr -R = foo

今週の宿題

今週の宿題は、ありません。
# たまには、休みましょう。(^ε^)

あとがき

うちには、小学校3年の男子が生息しています。

ちょうどムシキングに心を奪われる世代のようでして、我が家には、 ムシキングカードや、セガ公認のムシフィギュアなど、 各種ムシグッズが山のように転がっております。

親の立場から見ると、そんだけあったらもういらんやろ、と思うわけなのですが、 彼の欲望は留まることを知らず、小づかいを貯めては、 せっせとセガの売上に貢献をなさっています。

いわゆる成功本を買っては読み、そのうちに内容を忘れる、 ということを輪廻のごとく繰り返しています。
そんだけあったらもういらんやろ、というくらい本があるのに、新しい本が出ると、 読めばどうにかなると思って、買ってしまうんですよね。
(いわゆる『成功マニア』というやつです。本だけですが。)

おそらく、わたしよりひとまわり上の世代の方から見ると、 踊らされてるなーなんて思われるのではないかと思います。

そう思ったら、我が子に対する批判的な視線も、やわらいできました。
そして、ちょっと違う視点から自分を眺めて考えないといかんな、 などと思いました。

さて、次回は、新年明けて 1/8 に、お送りしたいと思います。
仕事がどうなっていようと、年末年始中にネタを考えて、 ちゃんとお送りする所存でございます。

それでは、ちょっと早いですが、よいお年をお迎えください。

今週も、ここまで読んでいただき、ありがとうございました。
それでは、また来週、お会いしましょう!

「いますぐ実践! Linux システム管理」の解除は、以下からどうぞ。
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

バックナンバーは、こちらにほぼ全部そろっています。
http://www.usupi.org/sysad/backno.html

「栗日記」−4周年まであと少し! 毎日毎日栗の絵を描き続けてます。
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 6をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューション(Fedora, Ubuntu)も充実しています。
LINUXで自宅サーバーを構築・導入(Fedora9)
Fedora9のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日経Linux
今や数少なくなってしまったLinuxの雑誌。ニュースやガイドもあります。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
gihyo.jp…技術評論社
Linuxに限らず様々な技術情報が満載のサイト。 SoftwareDesign誌も、 ソフトウェア技術者は必見です。
SourceForge.JP Magazine
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本