anacronでの動作を cronでの動作に戻す

CentOS6以降ではcronではなくanacronが標準になっていますが、これをcronで動作するように戻したいときにはどうするか。 cronie-noanacronというanacronを無効化するパッケージがありますので、次のようにします。

1.cronie-noanacronをインストール

[root@vps3 ~]# yum install cronie-noanacron

2.cronie-anacronをアンインストール

[root@vps3 ~]# yum install cronie-anacron

cron設定は、/etc/crontabではなく、/etc/cron.d/dailyjobsに記述します。

wgetとtarをワンライナーで行う

wgetで~.tar.gzといったファイルをダウンロードしてきて、その次のコマンドで解凍・展開を行ってから、それをyum localinstallとかという手順を踏むことが多いと思います。 ダウンロードから解凍・展開までをワンライナーでやってしまうことができるので、書いておきます。

# wget -O – http://~.tar.gz | tar xvfz –

ダウンロードしてきたファイルが残らないというメリットがあります。シェルスクリプトでは、より便利かもしれません。

ファイルを一括で削除

ログファイルや一時利用ファイルなどを一括で削除するコマンド。 条件としては、次のようなものとします。

特定のディレクトリに存在するファイル タイムスタンプ(更新日)が7日前より古いファイル

実際のコマンドは、こんな感じになります。

find /data/files -maxdepth 1 -mtime +7 -print0 | xargs -0 rm -f

ファイル名、パス名にスペースが入る可能性を考えて、find に print0オプション、xargs に 0オプションを付ける。

yum による更新の取り消し

yumによるinstall, update,eraseなどのパッケージの更新をあとになってから取り消したいことがあると思います。単独のパッケージのインストールやアンインストールであれば、そのパッケージを指定して、逆のオプションで実行すればすむかもしれませんが、複数パッケージを一括でアップデートするなど複雑なケースもあります。

yum が管理している過去の実行履歴を参照して、特定の実行を取り消すことがコマンド一発でできます。 まずは次のように過去の実行履歴を表示します。

# yum history 読み込んだプラグイン:fastestmirror, priorities ID | ログイン ユーザー | 日時 | 操作 | 変更 ——————————————————————————- 139 | root | 2014-12-20 21:30 | E, I, U | 11 138 | root | 2014-12-13 15:42 | Update | 21 137 | root | 2014-11-24 21:13 | Update | 8 136 | 続きを読む »

ログローテーションがうまくいかないとき

logarotateによるログローテーションがどうもうまくいかない、変なローテーションファイルが作成される、ログローテーションのテストでローテーション対象になるログができない、などちょっと困ってしまうことがあります。

ローテーションファイルのサフィックス(連番や日付)を途中で変更したときには、次のように変なローテーションファイルができてしまうことがあります。

-rw-r–r– 1 root root 1366515 7月 13 17:15 2014 access_log -rw-r–r– 1 root root 0 7月 13 03:16 2014 access_log.1 -rw-r–r– 1 root root 17375755 7月 13 03:15 2014 access_log.1.1 -rw-r–r– 1 root root 0 7月 13 03:16 2014 access_log.2 -rw-r–r– 1 root root 5301528 7月 6 03:15 2014 access_log.2.1 -rw-r–r– 1 root 続きを読む »