改行コードの変換あれこれ

テキスト文書の改行文字は3種類が使われている。

OS改行コード正規表現などでの記号
unixLF\n
Mac OS(主にMac OS X以前)CR\r
WindowsCR+LF\r\n

最近はあまり気にしないでも問題ないことが多いが、古いシステムのシフトJISデータを扱うことがあって、きちんと精査しないとまずいかったのまとめておく。

続きを読む

シャドウファイルの操作--/etc/shadowと/etc/gshadow

ユーザー管理のファイルとして、/etc/passwdと/etc/groupがある。コマンドでユーザーやグループを管理した場合は、それぞれバックアップファイルが作成され、直前のものは/etc/passwd-、/etc/group-として保管される。パスワードについてはそれぞれ/etc/shadow、/etc/gshadowファイルに保管される。

続きを読む

atコマンド--指定時間にコマンドを1回実行する

初期起動デーモンを整理しているとき、気になるのはatdをどうするか。atdは、cronと同じような、指定した時間にコマンドを実行するデーモンであるが、指定時間に1回だけ実行して終了する。たとえば、夜中に重い処理を実行し次の日に確認するとか、設定を変えたので夜中の利用者がいないときに再起動するといった具合である。

続きを読む

wgetでHEADリクエストを投げる

ページの存在チェックには、ページ全体を取得(GETリクエスト)しなくてもHTTPのHEADリクエストで確認することができる。

ページ取得でお手軽に使えるwgetでHEADリクエストを投げるには、--spiderオプションを使う

wget  --spider <URL>

 なお、更新チェックにHEADを使ってもきちんとはわからないので、GETリクエストで比較しなければならない。

404を簡単に抽出

まず、適当なファイルlistに調査したいURL一覧を羅列しておく

http://xxxx/aaa
http://xxxx/bbb
 :

次にforループでURLを1つずつ実行し、

for i in `cat list`
do
echo -n "$i "; wget --spider $i 2>&1 | grep -c '404 Not Found';
done

のようなシェルスクリプトのコマンドを実行する。404であれば、grepの-cでカウント1が取れるので、上記の出力結果は、

http://xxxx/aaa 1
http://xxxx/bbb 1
 :

のようになる。