Linux的scp和rsync命令
scp命令
scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
- 语法:
scp -r 用户名@主机ip:源主机的存储路径 用户名@主机ip:目的主机的存储路径
用户名表示主机账号
ip地址也可以用主机的域名等代替
当源主机或者目的主机为本机时可以不写用户名@主机ip:
直接写路径(此时可用绝对路径或者相对路径)
-r
表示递归,用于文件夹。加上-r
总是没错的
2. 举栗子
本机ip:192.168.1.201
将本机
/opt/scpFolder
文件夹发送到192.168.1.201的/opt/
路径下
scp -r scpFolder/ [email protected]:/opt/
如果输入密码出现Permission denied, please try again
,参考下列方法
- 检查密码是否输入正确
- 目的主机的用户是否有写入文件的权限
- ubuntu系统默认是禁止root用户使用密码远程登录,解决方案:将ssh的配置文件
/etc/ssh/sshd_config
中PermitRootLogin prohibit-password
注释掉,改成PermitRootLogin yes
,重启即可。(prohibit 禁止)
将192.168.1.202的/opt/scpfolder2 发送到本机/opt/
scp -r [email protected]:/opt/scpfolder2 /opt
注意:如果出现/opt/scpfolder2: Permission denied
错误,修改/opt的权限
sudo chmod 777 -R /opt
rsync命令
rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。
- 语法
rsync -rvl 用户名@主机ip:源主机的存储路径 用户名@主机ip:目的主机的存储路径
-r 递归
-v 显示复制过程
-l 拷贝符号连接
2. 举栗子
将本机的scpFolder文件夹同步到192.168.1.202的/opt/的文件夹中
rsync -rvl scpFolder [email protected]:/opt/
其他用法和scp类似,就不举例了