Ziu*_*Ziu 2 mount file-copy synchronization
我想使用 crontab 在我的 linux 分区和 windows 分区之间同步两个目录,如下所示:
24 9 * * * cp -r /home/fan/Data /media/T/Data
Run Code Online (Sandbox Code Playgroud)
但它会在原始数据目录中创建一个名为 Data 的目录,而不是从源目录复制丢失的文件。我在 cp 手册中找不到合适的选项来完美解决这个问题。我如何将丢失的文件(它们确实存在于目标目录中)从 src 复制到 dir。
顺便说一句,似乎需要挂载T盘才能运行复制命令,如何在需要运行命令时自动挂载磁盘(挂载命令应以root身份运行)。
如果命令有异常,我如何获得错误消息?
用于同步数据的工具是rsync
. 您可以在目录级别或仅在目录级别同步,如下所示:
24 9 * * * rsync -a /home/fan/Data /media/T/
Run Code Online (Sandbox Code Playgroud)
内容同步
24 9 * * * rsync -a /home/fan/Data/ /media/T/Data/
Run Code Online (Sandbox Code Playgroud)
第一个示例将目录Data
从同步/home/fan
到目录/media/T
。第二个示例将 的内容同步Data
到目录/media/T/Data
。
作为附加提示,我将使用此符号同步到目标目录:
24 9 * * * rsync -a /home/fan/Data/ /media/T/Data/.
Run Code Online (Sandbox Code Playgroud)
/.
在阅读我的rsync
命令时,我发现更明显。
使用rsync
可能是我在培训新用户时遇到的最困惑的问题之一。
样本数据:
$ tree home/fan/Data/
home/fan/Data/
|-- file1
|-- file2
|-- file3
|-- file4
`-- file5
Run Code Online (Sandbox Code Playgroud)
1. 同步目录数据的内容
$ rsync -a home/fan/Data/ media/T/
Run Code Online (Sandbox Code Playgroud)
请注意,我们将 的内容Data
放入T
.
$ tree media/T/
media/T/
|-- file1
|-- file2
|-- file3
|-- file4
`-- file5
0 directories, 5 files
Run Code Online (Sandbox Code Playgroud)
2.同步目录
$ rsync -a home/fan/Data media/T/
Run Code Online (Sandbox Code Playgroud)
请注意,我们将目录Data
放入T
.
$ tree media/T/
media/T/
`-- Data
|-- file1
|-- file2
|-- file3
|-- file4
`-- file5
1 directory, 5 files
Run Code Online (Sandbox Code Playgroud)