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に記述します。

(再まとめ) CAの構築とサーバ証明書・クライアント証明書の作成

OpenSSLを使用して、CAを立てて、サーバ証明書とクライアント証明書を作成する手順を再度まとめておくことにします。 合わせて、期限切れ時などの証明書更新時には、期限切れになった証明書を無効化する必要がありますので、その手順もまとめておきます。

■作成日 2015年12月29~31日に作成しているという設定。

■仕様 全体の仕様として、デフォルトだとSHA1になるメッセージダイジェストをSHA2に強化。この仕様は、下記ファイルで設定しておくことにする。 (1) CAスクリプト /etc/pki/tls/misc/CA (2) OpenSSL設定ファイル /etc/pki/tls/openssl.cnf

CA: ・有効期間10年3650日 ・鍵の長さ2048bit ・メッセージダイジェストSHA256

サーバ証明書: ・有効期限369日(翌年1月3日まで) ・鍵の長さ2048bit ・メッセージダイジェストSHA256

クライアント証明書: ・有効期限368日(翌年1月3日まで) ・鍵の長さ2048bit ・メッセージダイジェストSHA256

デフォルト設定値: ・countryName_default = JP ・stateOrProvinceName_default = Kanagawa ・localityName_default = Kawasaki ・0.organizationName_default = goofoo

■準備 ディレクトリバックアップ

# cp -pr /etc/pki{,.20161231}

■CA CAスクリプト編集

# cp -p /etc/pki/tls/misc/CA{,.org} # vim /etc/pki/tls/misc/CA # diff 続きを読む »

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オプションを付ける。

mysqldumpリストア手順

mysqldumpファイルを/restore/tmp/mysqldumpファイル.sqlとしたとき、次のコマンドでリストアするというのが一般的に知られた方法です。

# mysql -u root < /restore/tmp/mysqldumpファイル.sql

果たして、実用上配慮すべきことも含めて、どうするのがベターなのかということを考えてみました。 実用上はmysqlをバイナリログを出力する設定で稼動させると思いますので、ある問題が発生します。 mysqldumpファイルのリストア処理で実行されるSQL文は相当の数になり、データベースに対する更新が大量に発生します。その実行結果として、バイナリログにメッセージが大量に吐き出され、バイナリログファイルが肥大化します。多くのケースでは歓迎されないことです。

という点に配慮すると、次のようにmysqlコマンドプロンプトに入り、そのセッションだけバイナリログを出力しない設定を行った上で、mysqldumpファイルをリストアするという方法がベター。

# mysql -u root -p -s ←オプション s を付ける Enter password: ←パスワードを入力 mysql> set sql_bin_log=OFF; ←このセッションでは、バイナリログ出力を行わない設定に変更 mysql> source /restore/tmp/mysqldumpファイル.sql mysql> quit

ちなみに、mysqlコマンドの sオプションは、mysqlプロンプトでの実行結果を表示しないようにするためのものです。これを指定しないと、”Query OK, 0 rows affected (0.00 sec)”などのメッセージが大量に画面に表示されることになります。