> CentOS > CentOS入门 >

centos远程复制文件

一.在同一台机器上:

1.覆盖拷贝
在centos上 文件复制比较简单
用cp -p -r -f "/var" "/mnt/ubak/"(例) 即可。
但是如果使用putty等远程复制,putty中断后,任务应该会停止执行,那么复制到具体何位置应无法确定。
 
后来查到用如下命令 nohup cp -p -r -f "" "" &
程序会在后台执行,即使退出终端也不会中断执行。
2.不覆盖拷贝
把歌曲从/data/www/html/song/upload/m/ 拷贝到/mnt/backup/www/html/song/upload/m/,不覆盖相同文件
(其实只是将覆盖提示默认为否)
[root@localhost ~]# awk 'BEGIN{cmd = "cp -p -i -r /data/www/html/song/upload/m/* /mnt/backup/www/html/song/upload/m/";print "n"|cmd; }'

二.在不同机器上:

介绍两种方法

1、scp

例子:scp source dest //将source拷贝到dest

与cp不同的是,这里的source和dest形式如下

用户名@主机名:文件路径

例子:scp root@202.112.23.12:/home/work/example.c .     //将远程机202.112.23.12上的example.c拷贝至本机的当前目录

例子:scp -r root@202.112.23.12:/home/work/project .      //将远程机202.112.23.12上的project目录拷贝至本机的当前目录

当然也可以将本机以外的A机的内容拷贝至B机,这里要输入两个用户在两台机器上的密码即可

2、rsync

它比scp更强大,支持“不覆盖”原目录

例子:rsync -avz --progress /root/client/   root@202.112.23.12:/home/work/      

        //将本机的/root/client/拷贝至远程的202.112.23.12:/home/work/目录,--progress可以查看拷贝的过程

例子:rsync -avzu --progress /root/client/   root@202.112.23.12:/home/work/     //u选项,指定不覆盖原目录内容

例子:
从端口为11212(非默认端口22)的服务器拷贝/m下文件到本地文件夹
rsync -avzur --progress -e'ssh  -p 11212' root@192.168.50.11:/var/www/wwwroot/song/upload/m/* /data/www/html/song/upload/m/

(责任编辑:IT)