次のように、crontabを使用してLinuxパーティションとWindowsパーティション間の2つのディレクトリを同期させたいと思います。
24 9 * * * cp -r /home/fan/Data /media/T/Data
ただし、ソースディレクトリから欠落しているファイルをコピーする代わりに、元のDataディレクトリにDataというディレクトリを作成します。この問題を完全に解決するのに適したオプションはcpマニュアルにありません。 srcからdirに欠落しているファイル(ターゲットディレクトリにあります)をどのようにコピーできますか?
しかし、copyコマンドを実行するにはTディスクをマウントする必要があるようですが、コマンドを実行する必要があるときに自動的にディスクをマウントするにはどうすればよいですか(mountコマンドはrootとして実行する必要があります)。
コマンドで例外が発生した場合、エラーメッセージをどのように受け取りますか?
ベストアンサー1
データ同期のためのツールはですrsync
。次のようにディレクトリレベルで同期したり、ディレクトリの内容のみを同期したりできます。
はい
ディレクトリ同期24 9 * * * rsync -a /home/fan/Data /media/T/
コンテンツの同期
24 9 * * * rsync -a /home/fan/Data/ /media/T/Data/
最初の例では、ディレクトリをData
ディレクトリから/home/fan
ディレクトリに同期します/media/T
。 2番目の例では、Data
ディレクトリの内容を同期します/media/T/Data
。
追加のヒントとして、次の表記法を使用してターゲットディレクトリに同期します。
24 9 * * * rsync -a /home/fan/Data/ /media/T/Data/.
/.
私のコマンドを読んだとき、rsync
私はそれがより明確であることを知りました。
アクションの例
使い方はrsync
、おそらく新しいユーザーを教育するときに直面する最も混乱した問題の1つです。
サンプル:
$ tree home/fan/Data/
home/fan/Data/
|-- file1
|-- file2
|-- file3
|-- file4
`-- file5
1. dir データの内容を同期します。
$ rsync -a home/fan/Data/ media/T/
Data
に内容を入れたので参考にしてくださいT
。
$ tree media/T/
media/T/
|-- file1
|-- file2
|-- file3
|-- file4
`-- file5
0 directories, 5 files
2. ディレクトリ同期
$ rsync -a home/fan/Data media/T/
ディレクトリData
をT
。
$ tree media/T/
media/T/
`-- Data
|-- file1
|-- file2
|-- file3
|-- file4
`-- file5
1 directory, 5 files