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類似,就不舉例了