物理PCだと稀にNICにゃんかがudevで失敗してrename??みたいにゃ面白nic名ににゃってたりする。
で、ほっといてよいかと思ったんだが、再起動してるとrename??の数字が増えたりしてこれは話ににゃらんね、とudevのconfig書くことに。
/etc/udev/rules.d/10-persistent-network.rules
とかに
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:01:22:33:44:55", NAME="ens01"
みたいに書けば、当該MAC持ってるNICは指定の名前ににゃるので解決にゃのだが、実際にはbondingやvlanを使う場合はそれらも同じMACににゃるのでこの設定は死亡フラグ。
で、小一時間かけて
udevadm info -a -p /sys/class/net/rename??
udevadm info --query=all /sys/class/net/bond0.100
ip link add link bond0 name bond0.100 type vlan id 100 ; ip link
seq 1 100 | while read a; do vconfig rem rename$a; done
vi /etc/udev/rules.d/10-persistent-network.rules
/etc/init.d/udev reload
/etc/init.d/networking restart
とかしまくってsyslogとにらめっこした結果、
SUBSYSTEM=="net", ENV{DEVTYPE}=="" , ACTION=="add", ATTR{address}=="00:01:22:33:44:55", NAME="ens01"
SUBSYSTEM=="net", ENV{DEVTYPE}!="" , ACTION=="add", NAME="$kernel"
の記述でとりあえず動くようににゃった。DEVTYPEにはvlanとかbondとかにゃんかそういうのが入るので、順に除外しても良いと思うのだが、物理デバイスではDEVTYPEが無さげだったので。環境によってはダメかも。
それにしても現状のudevはどうもトラブル原因ににゃっているにゃぁ。rename失敗するにゃら元のkernel名のまま置いといてくれたほうが、被害が大きくにゃらにゃい気がする。
Ubuntu Server16 LTSにゃんだが、
crontabに
* * * * * root cd /hoge/ && bash /hoge/hoge.sh >> /hoge/hoge.log 2>&1
* * * * * root (cd /hoge/ && bash /hoge/hoge.sh) >> /hoge/hoge.log 2>&1
と書くと、下は正常に実行されて、実行結果がlogに出るが、
上は「root cd /hoge/ && bash /hoge/hoge.sh >> /hoge/hoge.log 2>&1」がlogに追記される。
何をどう実行したらそんにゃもんが出力されるのか謎にゃんだが、こんにゃ仕様あったっけか?
気づかにゃければcron実行されにゃいまま警告が上がらにゃかったので、これは不味い動作にゃんだが、ちょっと記述の何がまずいのかよくわからん。というか古いLinux鯖でこのまま記述して動作していたのだが何か変わったんだろうか。