xargs と exec


今日は中秋の名月だとか、どうりで朝から体毛がよく伸びるが図です。こんにちは。岩本@サーバー事業部です。

Linuxサーバーで差分バックアップを行う際、findを使って差分ファイルを抜き出し、

tarで圧縮をするのが一般的かと思います。

1日以内の更新ファイルを見つけて、tarで圧縮

find $BACKUPDIR -mtime -1 -type f | xargs tar czvf /misc/backup/backup_daily.tar.gz

しかし、上記だとファイル名にスペースや文字化けが入っていると、xargsがクォート処理されていないため

うまく動いてくれません。

そこでっ

find $BACKUPDIR -mtime -1 -type f -exec tar czvf /misc/backup/backup_daily.tar.gz “{}”  ;

でも、これだと、検索アイテム毎に処理を行うのでリソースを食いますし、

元ファイル毎に圧縮ファイルが上書きされていきます。(tarのオプションで上書きは解消できるはず?)

で、色々と調べていくと、おしりの”{}”  ;を”{}” +と変更することで、逐次ではなく、検索結果をまとめて処理してくれるとか。

find $BACKUPDIR -mtime -1 -type f -exec tar czvf /misc/backup/backup_daily.tar.gz “{}” +

とゆうわけで、xargsとexecの覚書です。

  1. No comments yet.
(will not be published)

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)