Linux中利用scp命令进行自动远程拷贝
在服务器之间做数据备份一般会用到远程拷贝命令,scp命令就可以做到远程拷贝,并且支持从本地到远程的拷贝和从远程到本地的拷贝.
一般情况下执行拷贝命令时会提示我们输入远程服务器的用户名和密码,这在自动执行的程序中是一个障碍,因为没有人工的干预,关于服务器之间互访不需要密码的方式前面已经有介绍,可以参考前面的文章,这里介绍一下scp拷贝命令.
scp 本地用户名@IP地址:文件名1 远程用户名@IP地址:文件名2
[本地用户名@IP地址:] 可以不输入,可能需要输入远程用户名所对应的密码.
scp 命令
scp 可以在 2个 linux 主机间复制文件;
命令基本格式:scp [可选参数] file_source file_target
从 本地 复制到 远程:
- *复制文件:
- *命令格式:
- scplocal_fileremote_username@remote_ip:remote_folder
- 或者
- scplocal_fileremote_username@remote_ip:remote_file
- 或者
- scplocal_fileremote_ip:remote_folder
- 或者
- scplocal_fileremote_ip:remote_file
第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名.
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名.
例程:
- scp/home/space/music/1.mp3root@www.phpfensi.com:/home/root/others/music
- scp/home/space/music/1.mp3root@www.phpfensi.com:/home/root/others/music/002.mp3
- scp/home/space/music/1.mp3www.phpfensi.com:/home/root/others/music
- scp/home/space/music/1.mp3www.phpfensi.com:/home/root/others/music/002.mp3
复制目录:
命令格式:scp -r local_folder remote_username@remote_ip:remote_folder
或者:scp -r local_folder remote_ip:remote_folder
第1个指定了用户名,命令执行后需要再输入密码,第2个没有指定用户名,命令执行后需要输入用户名和密码.
例程:
- scp-r/home/space/music/root@www.phpfensicom:/home/root/others/
- scp-r/home/space/music/www.phpfensi.com:/home/root/others/
上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录.
从 远程 复制到 本地
从 远程 复制到 本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序 即可.
例如:
- scproot@www.cumt.edu.cn:/home/root/others/music/home/space/music/i.mp3
- scp-rwww.cumt.edu.cn:/home/root/others//home/space/music/
假设有两台服务器A和B,B服务器的IP地址是115.47.169.130,现在需要将B服务器上的/var/logs/test.log文件拷贝到A服务器上的/bak/目录下,则可以在A服务器上执行命令.
/usr/bin/scp root@115.47.169.130:/var/logs/test.log /bak/test.log
如果需要将A服务器上的/bak/test.sql拷贝到B服务器的/data/目录下则可以在A服务器上执行: /usr/bin/scp /bak/test.sql root@115.47.69.130:/data/test.sql
说到这里如果要在B服务器上操作,相信各位应该都会了吧,另外一点如果远程服务器默认的端口不是22可以使用在scp后使用-P命令指定端口,例如:
/usr/bin/scp -P2200 root@115.47.169.130:/var/logs/test.log /bak/test.log
可能有用的几个参数:
-v 和大多数linux命令中的-v意思一样,用来显示进度.可以用来查看连接,认证,或是配置错误.
-C 使能压缩选项.
-P 选择端口.注意-p已经被rcp使用.
-4 强行使用IPV4地址.
-6 强行使用IPV6地址.
拷贝单个文件命令:scp file username@ip:filepath
说明:
file: 要拷贝的文件名.
username: 远程登录的用户名.
ip:远程服务器ip.
filepath:远程文件路径
拷贝文件夹命令如下(多加上一个-r 参数即可):scp -r file username@ip:filepath
热门评论