カテゴリー : linux,bash
このカテゴリーの登録数:9件 表示 : 1 - 7 / 9
Dec 28, 2009
ファイルのないディレクトリを削除する。
tmpwatch でフォルダは削除されないので…。
[root@backup_samba_server ~]# find /home/samba/.trach/ -type d -empty -delete
怖いけどできる。
参考にさせていただきました。
[linux][bsd] 空ディレクトリだけを削除する
Jul 08, 2009
Nagios の check_domain を改造。
ドメインのうっかり失効を監視したくて Nagios に監視させたい。
MonitoringExchange.org で change_domain を見つけたんですが、末尾 jp ドメインに対応していない。(日本語ドメインには対応してた。『ほげほげ.org』とか)
試しにこんな感じ。日本語『ほげほげ.org』取得できますね。
[furuyama@nagios check_domain]$ ./check_domain_org -d ほげほげ.org
CRITICAL - Domain expired on 03-Mar-2007 00:00:00 UTC
で『 jp ドメイン』検索できるように改造。
[furuyama@nagios check_domain]$ diff -Nur ~/svn/check_domain/check_domain_org ~/svn/check_domain/check_domain
--- /home/furuyama/svn/check_domain/check_domain_org 2009-06-18 14:43:06.000000000 +0900
+++ /home/furuyama/svn/check_domain/check_domain 2009-06-19 18:25:10.000000000 +0900
@@ -57,7 +57,24 @@
fi
# Calculate days until expiration
-expiration=`whois $domain |grep "Expiration Date:"| awk -F"Date:" '{print $2}'|cut -f 1`
+# for ".jp"
+chk=`echo $domain | grep -qi ".jp$"`
+if [ $? = 0 ]
+then
+ # for ".co.jp"
+ chk_jp=`echo $domain | grep -qi "co.jp$"`
+ if [ $? = 0 ]
+ then
+ expiration=`whois $domain |grep "\[State\]" | awk -F"Connected" '{print $2;}' | sed -e "s/^ (//" | sed -e "s/)$//"`
+ # 他のをチェックするなら
+ else
+ #
+ expiration=`whois $domain |grep "\[Expires on\]"| awk -F"]" '{print $2;}' |sed -e "s/^ *//"`
+ fi
+else
+# ".jp" 以外
+ expiration=`whois $domain |grep "Expiration Date:"| awk -F"Date:" '{print $2}'|cut -f 1`
+fi
expseconds=`date +%s --date="$expiration"`
nowseconds=`date +%s`
((diffseconds=expseconds-nowseconds))
末尾 jp でチェックしてさらに、co.jp かどうか確認。
12 時間に 1 回チェックするように、Nagios 設定。
こんな感じで日本語 OK。ちょw『ほげほげ.jp』取得済み。
[furuyama@nagios check_domain]$ ./check_domain -d ほげほげ.jp
OK - Domain will expire in 144 days
しばらくは大丈夫だったんですが、更新したはずのドメインが『更新期限が近いですよー!』とアラートが…。確かにコンソールから whois コマンドを実行すると更新期限が近い…。( jwhois-3.2.3-8.el5 で /etc/jwhois.conf に whois.jprs.jp が設定されていた。)
『そんなはずはないんだけどなぁ。。』と、登録したレジストラの whois サーバを指定して確認すると更新後の期限で登録されている。(夢で見たらしい。2009/07/30追記)
ぐぬぬ。
『whois.jprs.jp の期限が更新されてない。』とレジストラに確認 → 期限が切れないと更新されないらしい。(まあ監視してないと気づかなかったことなので…。)
自分で登録したドメインしか確認しないので whois サーバを指定して確認したほうがいいのであとで改造します。と言っておこう。(やはりダメっぽいのでなかったことに。。2009/07/30追記)
改造してから気づいたけど書いてるかたがいらっしゃいました。
Nagiosでドメイン失効を監視する - それ、Gentooだとどうなる?
ぬー。
2009/07/30 追記
jp ドメインの場合、JPRS の有効期限が切れた翌日に更新されるので Whois サーバ指定してもダメとのこと…。jp ドメインは最終的に JPRS のWhois サーバに紹介されるのでダメと…。
今回『お名前.com』がレジストラで、お名前.com の Whois 確認サイトで確認しても JPRS のWhois サーバの結果が表示される。
違うサイトに説明があった。
更新手続きをしても、Whoisで有効期限が変わりませんが何故ですか?
JPドメイン名の場合、Whois情報はJPRS様のデータベースが有効期限の翌日に更新されます。 その為、弊社で更新手続きをしても反映されません。
弊社にて更新手続きが完了しますと管理画面内に表示されている有効期限が書き換わります。
Apr 10, 2009
UNIX Time への変換。
こちら(→ unixtime と 日付 の相互変換 | Linux - P-SOC)を参考に備忘録。
日付から UnixTime
$ date +%s
1239335935
UnixTime から日付
$ echo 1239335935 | awk '{print strftime("%c",$1)}'
2009年04月10日 12時58分55秒
Perl で書けばいいのか…。な。。→ DateTime.pm だそうな。
Oct 29, 2008
フォルダの使用量が少ない順にソートする。
du -h -k /home/backup/ | sort -t 1 -n
du
- -h, --human-readable : 人が読み易い形式(e.g., 1K 234M 2G)で表示する。
- -k, --kilobytes : --block-size=1024と同様。
sort
- -t separator : 各行からソートキーを検索する際、文字 separator をフィールドのセパレーターにする。デフォルトでは、フィールドは空白以外 の文字と空白文字の間の空文字列 (empty string) によって分離される。例え ば入力行として ` foo bar' が与えられた場合、 sort はこの行をフィールド ` foo' と ` bar' に分離する。フィールドセパレーター は、その前後のフィールドには含まれないものとされる。
- -n : 先頭の文字列 (空白が前置されていても良い) を数値文字列として比較す る。数値文字列は、先頭の - 符号 (なくても良い)、 0 桁以上の数字、 そして小数点と 0 桁以上の数字 (なくても良い) からなる。
du -k /home/backup/ | sort -n
でもおなじような気がしますが…。
Jul 24, 2008
便利なコマンド(IDEA*IDEAさんよりコピペ)
Jul 02, 2008
grep で『 引数リストが長すぎます( Argument list too long ) 』
spam のゴミ箱の中のメールを検索しようとして。
$ grep yahoo.com /var/trash/*
-bash: /bin/grep: 引数リストが長すぎます
とエラー。
$ cd /var/trash
$ grep yahoo.com *
ってやったら、OK。
『 /var/trash/ 』の長さもカウントされるんだ。ほぉ〜。
xargs というコマンドが便利そうだ。→あとでよく読もう。
xargs - 『ウィキペディア(Wikipedia)』
※写真と本文は関係ありません。
quota の設定をたくさんのユーザに適用するときに便利。ユーザ( newuser )に元になるユーザ( olduser )と同じ設定を適用する。
# edquota -p olduser newuser
-p protoname Duplicate the quotas of the prototypical user specified for each user specified. This is the normal mechanism used to initialize quotas for groups of users.