2016年8月9日火曜日

一度だけ 実行 at コマンド iptables

背景:
サーバをリモートで操作する
ローカル/コンソールでは触れない。
iptableを編集する
アクセスできなくなったらどうしよう。

5分後にiptables無効にすれば万が一でも復旧できるんじゃね?
cron?定期実行だからめんどいね。

at コマンドあるじゃない!!

いってみよー。

----ここから
cd /tmp

##at デーモンの起動##
service atd start

##iptables を stop させる スクリプト##
cat >> iptables_stop.sh << EOF
#!/bin/sh
service iptables stop
EOF


##5分後の時刻を at コマンドで指定できるフォーマットで出力##
date "+%H:%M %d.%m.%y" -d '5 minutes'


※エクセルの関数
="at '"&(dateコマンドの結果)&"' -f /tmp/iptables_stop.sh"

##実行##
at '04:51 09.08.16' -f /tmp/iptables_stop.sh

ここまで----


atコマンド
+sh しか対応していない。
+時刻の指定フォーマットが特殊

at -l
+待機中のキューの確認

at -d
+待機中のキューの削除


なんとかone line で行けないか...。

ATFORM=$(date "+%H:%M %d.%m.%y" -d '5 minutes');echo at \'"$ATFORM"\' -f /tmp/iptables_stop.sh

unset ATFORM




Thanks...
http://takuya-1st.hatenablog.jp/entry/20120503/1336036427
http://webkaru.net/linux/at-command/