2011/07/27

ssh, find, xargs, tarで本番環境ぶっ壊した

find . -type f -name "foo-*.txt" -print0 | xargs -0 tar -cf /dev/stdout
とすればよかったところを
find . -type f -name "foo-*.txt" -print0 | xargs -0 tar -cf
としてファイルぶっ壊した。(tarにfを指定しているのにパスを渡さなかったのでxargsで渡された最後のファイルがtarの結果で上書きされた?)

しかも実際はサーバ(FreeBSD)の本番環境からローカルにファイルをまとめて取ってこようとして失敗。
ssh valvallow@server 'find /hoge/piyo/fuga -maxdepth 1 -type f -name "foo-*" -print0 | xargs -0 tar -cf' > ./foos.tar
すぐさまトラブル発生。gitで復活。。(ある意味すぐトラブル発生してよかった・・・)

そもそもxargsなんか使わずにこうすれば良いと教えてもらった。
ssh valvallow@server 'cd /hoge/piyo/fuga ; tar zcf - foo-*' > foos.tar.gz

UNIXという考え方―その設計思想と哲学

0 件のコメント:

コメントを投稿