Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux rsync-将文件复制到另一台服务器_Linux_Ssh_Rsync - Fatal编程技术网

Linux rsync-将文件复制到另一台服务器

Linux rsync-将文件复制到另一台服务器,linux,ssh,rsync,Linux,Ssh,Rsync,我的服务器1中有500多个Mp4文件 所以我希望其中一半发送到服务器2,另一半发送到服务器3 但我不知道该怎么做 有没有办法通过字母表或日期或其他方式选择文件 以 a,c,e*.mp4 将发送到服务器2和以 b,d,f*.mp4 将发送到服务器3 或者你认为还有其他更好的方法吗 rsync -avzP /home/user/public_html/domain.com/ ip:/home/user2/public_html/domain.com/ 1) 使用“查找”创建所有文件

我的服务器1中有500多个Mp4文件 所以我希望其中一半发送到服务器2,另一半发送到服务器3

但我不知道该怎么做

有没有办法通过字母表或日期或其他方式选择文件 以

 a,c,e*.mp4  
将发送到服务器2和以

 b,d,f*.mp4 
将发送到服务器3

或者你认为还有其他更好的方法吗

rsync -avzP /home/user/public_html/domain.com/ ip:/home/user2/public_html/domain.com/ 
1) 使用“查找”创建所有文件的列表

find /opt/mymp3folder -print > /tmp/foo
find /opt/mymp3folder -print > /tmp/foo
2) 找到行数并将列表一分为二

cd /tmp
wc -l /tmp/foo
387
split -l 200 /tmp/foo
wc -l /tmp/foo
3) 默认情况下,“拆分”生成一组名为xaa xab xac等的文件。因此,使用xaa复制到一台服务器,使用xab复制到另一台服务器

rsync -av --files-from=/tmp/xaa . server1:/opt/newmp3folder/
rsync -av --files-from=/tmp/xab . server2:/opt/newmp3folder/
上面的“.”是“源”路径,允许在“文件来源”中使用相对路径。您需要位于运行find命令的同一路径中并使用。或者将其设置为绝对值

显然,如果您想定期执行此操作,可能需要正确地编写脚本

1)使用find创建所有文件的列表

find /opt/mymp3folder -print > /tmp/foo
find /opt/mymp3folder -print > /tmp/foo
2) 找到行数并将列表一分为二

cd /tmp
wc -l /tmp/foo
387
split -l 200 /tmp/foo
wc -l /tmp/foo
3) 默认情况下,“拆分”生成一组名为xaa xab xac等的文件。因此,使用xaa复制到一台服务器,使用xab复制到另一台服务器

rsync -av --files-from=/tmp/xaa . server1:/opt/newmp3folder/
rsync -av --files-from=/tmp/xab . server2:/opt/newmp3folder/
上面的“.”是“源”路径,允许在“文件来源”中使用相对路径。您需要位于运行find命令的同一路径中并使用。或者将其设置为绝对值

显然,如果您想定期执行此操作,可能需要正确地编写脚本

1)使用find创建所有文件的列表

find /opt/mymp3folder -print > /tmp/foo
find /opt/mymp3folder -print > /tmp/foo
2) 找到行数并将列表一分为二

cd /tmp
wc -l /tmp/foo
387
split -l 200 /tmp/foo
wc -l /tmp/foo
387 拆分-l 200/tmp/foo

mv xaa xaa.txt
然后像这样同步

 rsync -avzP -e ssh `cat xaa.txt` root@0.0.0.0:/var/www/
1) 使用“查找”创建所有文件的列表

find /opt/mymp3folder -print > /tmp/foo
find /opt/mymp3folder -print > /tmp/foo
2) 找到行数并将列表一分为二

cd /tmp
wc -l /tmp/foo
387
split -l 200 /tmp/foo
wc -l /tmp/foo
387 拆分-l 200/tmp/foo

mv xaa xaa.txt
然后像这样同步

 rsync -avzP -e ssh `cat xaa.txt` root@0.0.0.0:/var/www/

我认为按大小分割文件比按数字分割文件更好(我假设mp4中有几种文件大小)


我认为按大小分割文件比按数字分割文件更好(我假设mp4中有几种文件大小)


我想这会有帮助:我在文件所在的文件夹上用ssh发送即时消息,我尝试了以下方法:rsync-avzP--include='[Nn][Aa][Mm][E]*.mp4'ip:/home/user2/public_html/domain.com/因此,我认为这将得到以示例n*.mp4开头的文件,但它不起作用。我认为这会有所帮助:我在文件所在的文件夹上使用ssh,我尝试了以下方法:rsync-avzP--include='[Nn][Aa][Mm][E]*.mp4'ip:/home/user2/public_html/domain.com/因此我认为这将获得以示例n*.mp4开头的文件,但它不起作用同步:--从文件:未知选项rsync错误:main.c(1422)[client=3.0.6]处的语法或使用错误(代码1)对不起,错误的选项拼写和语法。更正rsync:--从文件:未知选项rsync错误:main.c(1422)[client=3.0.6]处的语法或使用错误(代码1)]抱歉,选项拼写和语法错误。纠正