スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
新しい記事を書く事で広告が消せます。
cronで実行するプログラムに引数としてdateコマンドで日付を渡す
cronで実行するものに日付を引数で与えたいときには
program_path `date '+\%Y\%m\%d'`
みたいに「%」を「\」でescapeする。
これでめでたくYYYYMMDDを渡せるわけだけど、RHEL ES3だと渡ってくる値が
\YYYY\MM\DD
になってしまう…。
じゃあ「\」無しでいけるかと言えばそれは無理っぽい。どうしたもんか。
結局program側で渡ってきた「\」を除去する処理を入れた。
program_path `date '+\%Y\%m\%d'`
みたいに「%」を「\」でescapeする。
これでめでたくYYYYMMDDを渡せるわけだけど、RHEL ES3だと渡ってくる値が
\YYYY\MM\DD
になってしまう…。
じゃあ「\」無しでいけるかと言えばそれは無理っぽい。どうしたもんか。
結局program側で渡ってきた「\」を除去する処理を入れた。
スポンサーサイト
まとめて一括拡張子変換
たとえばあるディレクトリ配下の.phpファイルを.htmlに変える場合(サブディレクトリのファイル含む)
↓
# find . -type f -name "*.php" -print0 | while read -r -d '' file; do mv "$file" "${file%%.php}.html"; done
↓
# find . -type f -name "*.php" -print0 | while read -r -d '' file; do mv "$file" "${file%%.php}.html"; done
iproute2のポリシールーティングで通信を受けたNICによってルーティングを変える
下の図みたいな構成でデフォルトゲートウェイはR2なんだけどeth0で通信を受けた場合はR1にルーティングしたいという場合、iproute2で複数ルーティングテーブルを使うことによって実現する。

■追加するルーティングテーブルのIDと名前
【/etc/iproute2/rt_tables】
追記↓
100 r1e
■デフォルトゲートウェイの設定
【/etc/sysconfig/network-scripts/ifcfg-eth1】
追記↓
GATEWAY=10.2.2.1
■eth0から送出のルーティング設定
【/etc/sysconfig/network-scripts/route-eth0】
10.1.1.0/24 dev eth0 src 10.1.1.2 table r1e
default via 10.1.1.1 table r1e
【/etc/sysconfig/network-scripts/rule-eth0】
from 10.1.1.2 table r1e
■反映
# /etc/init.d/network restart
通常のstaticルーティングと組み合わせても大丈夫で、例えば、10.3.3.0/24宛てはeth0から送出してネクストホップ10.1.1.1みたいなルーティングを追加するならroute-eth0先頭に
10.3.3.0/24 via 10.1.1.1
を追記すればいい。
■ルーティングテーブルの一覧
↓
# ip rule
0: from all lookup local
32765: from 10.1.1.2 lookup r1e
32766: from all lookup main
32767: from all lookup default
一番左が優先度(小さい方が優先)、一番右がテーブル名
■各ルーティングテーブルの内容
↓
# ip route show table テーブル名
今回追加したテーブルの内容は
↓
# ip route show table r1e
10.1.1.0/24 dev eth0 scope link src 10.1.1.2
default via 10.1.1.1 dev eth0

■追加するルーティングテーブルのIDと名前
【/etc/iproute2/rt_tables】
追記↓
100 r1e
■デフォルトゲートウェイの設定
【/etc/sysconfig/network-scripts/ifcfg-eth1】
追記↓
GATEWAY=10.2.2.1
■eth0から送出のルーティング設定
【/etc/sysconfig/network-scripts/route-eth0】
10.1.1.0/24 dev eth0 src 10.1.1.2 table r1e
default via 10.1.1.1 table r1e
【/etc/sysconfig/network-scripts/rule-eth0】
from 10.1.1.2 table r1e
■反映
# /etc/init.d/network restart
通常のstaticルーティングと組み合わせても大丈夫で、例えば、10.3.3.0/24宛てはeth0から送出してネクストホップ10.1.1.1みたいなルーティングを追加するならroute-eth0先頭に
10.3.3.0/24 via 10.1.1.1
を追記すればいい。
■ルーティングテーブルの一覧
↓
# ip rule
0: from all lookup local
32765: from 10.1.1.2 lookup r1e
32766: from all lookup main
32767: from all lookup default
一番左が優先度(小さい方が優先)、一番右がテーブル名
■各ルーティングテーブルの内容
↓
# ip route show table テーブル名
今回追加したテーブルの内容は
↓
# ip route show table r1e
10.1.1.0/24 dev eth0 scope link src 10.1.1.2
default via 10.1.1.1 dev eth0
宛先によって送信元IPアドレスをNATする
iptablesを使う。
例えば宛先が10.1.0.0/16だったら送信元IPアドレスを10.2.0.1にNATする場合(ここではパケットフィルタは使っていない)
↓
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o eth0 -d 10.1.0.0/16 -j SNAT --to-source 10.2.0.1
COMMIT
解説はこう
↓
##### filterテーブル #####
*filter
##### デフォルトのポリシー(全許可)#####
##### [0:0]はiptables再起動時のパケットカウント:バイトカウント #####
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
##### 以上内容で登録 #####
COMMIT
##### natテーブル #####
*nat
##### デフォルトのポリシー#####
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
##### 送出インターフェース eth0で宛先アドレスが10.1.0.0/16なら送信元アドレスを10.2.0.1にNATする #####
-A POSTROUTING -o eth0 -d 10.1.0.0/16 -j SNAT --to-source 10.2.0.1
##### 以上内容で登録 #####
COMMIT
例えば宛先が10.1.0.0/16だったら送信元IPアドレスを10.2.0.1にNATする場合(ここではパケットフィルタは使っていない)
↓
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o eth0 -d 10.1.0.0/16 -j SNAT --to-source 10.2.0.1
COMMIT
解説はこう
↓
##### filterテーブル #####
*filter
##### デフォルトのポリシー(全許可)#####
##### [0:0]はiptables再起動時のパケットカウント:バイトカウント #####
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
##### 以上内容で登録 #####
COMMIT
##### natテーブル #####
*nat
##### デフォルトのポリシー#####
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
##### 送出インターフェース eth0で宛先アドレスが10.1.0.0/16なら送信元アドレスを10.2.0.1にNATする #####
-A POSTROUTING -o eth0 -d 10.1.0.0/16 -j SNAT --to-source 10.2.0.1
##### 以上内容で登録 #####
COMMIT
Scientific Linux 6.1からyumのリポジトリの分け方が変わったらしい
http://jfut.integ.jp/2011/07/29/scientific-linux-61-yumrepositories/
ざっくり言うとこんな感じになるのか(debuginfo、testing、sourceとかは略)↓
fastbugsリポジトリは標準で入ってないので
yumでyum-conf-sl-otherをインストールする
↓
# yum -y install yum-conf-sl-other
インストールしてもデフォルトでfastbugsは有効じゃないので
# vi /etc/yum.repos.d/sl-other.repo
[sl-fastbugs]
セクションで
enabled=1
に変更。
ざっくり言うとこんな感じになるのか(debuginfo、testing、sourceとかは略)↓
update
├─ sl
│
├─ sl-security
│ 旧マイナーバージョンにもupdateがリリースされる。
└─ sl-fastbugs
最新バージョンにしかupdateがリリースされない。
fastbugsリポジトリは標準で入ってないので
yumでyum-conf-sl-otherをインストールする
↓
# yum -y install yum-conf-sl-other
インストールしてもデフォルトでfastbugsは有効じゃないので
# vi /etc/yum.repos.d/sl-other.repo
[sl-fastbugs]
セクションで
enabled=1
に変更。