2016/07/20
ファイルを同期させてバックアップ(とか)!
前置き
対象とするケースは以下です
- ストレージ同期から更にファイルを抽出する
- 特定のファイル/ディレクトリのバックアップ
- Windows / Mac 対応
Macの場合
以下のコマンドを実行するだけです。
ディレクトリやファイル毎にコマンドを変えてあげる必要はあります。
上記の詳細は以下です。
・interval以降の数値:同期する周期(単位は秒)
・rsync:同期を実行するコマンド本体
・iconv:ファイル名などを識別する文字コード(おまじない程度)
・-auv:[a:サブディレクトリをタイムスタンプ等全部そのままコピー][u:更新されたファイルのみ][v:容量を表示する]
・最初のパス:コピー元
・次のパス:コピー先
ディレクトリやファイル毎にコマンドを変えてあげる必要はあります。
1 | watch --interval=10 "rsync --iconv=UTF-8-MAC,UTF-8 -auv \"/Volumes/HOGEHOGE/assetments/\" \~/Vagrant/data/fugafuga/asset\"" |
上記の詳細は以下です。
・interval以降の数値:同期する周期(単位は秒)
・rsync:同期を実行するコマンド本体
・iconv:ファイル名などを識別する文字コード(おまじない程度)
・-auv:[a:サブディレクトリをタイムスタンプ等全部そのままコピー][u:更新されたファイルのみ][v:容量を表示する]
・最初のパス:コピー元
・次のパス:コピー先
同期元と同期先を全く同じものにするには「–delete」オプションを使えばOKです。
(ただし、存在しないファイルがあった場合は片方が削除されるので注意)
Windowsの場合
Mac(Linux)ほど厳密なことは出来ません。
これだけです。
ファイルの拡張子を指定したければ
コマンド末尾にスペース一つあけて「*.jpg」とすれば
その条件に一致したファイルのみを同期してくれます。
1 | robocopy C:\\src C:\\dst |
これだけです。
ファイルの拡張子を指定したければ
コマンド末尾にスペース一つあけて「*.jpg」とすれば
その条件に一致したファイルのみを同期してくれます。
更にサブディレクトリも一緒にコピーしたければ
/S と上記の条件から更にスペースを一つあけて追記すればOKです。
Macのrsyncコマンドのように全く同じ状態にするは現状難しそうです。
Author Profile
スターフィールド編集部
SHARE