加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

Linux中利用scp命令进展自动远程拷贝

发布时间:2022-06-21 18:36:41 所属栏目:教程 来源:互联网
导读:在服务器之间做数据备份一般会用到远程拷贝命令,scp命令就可以做到远程拷贝,并且支持从本地到远程的拷贝和从远程到本地的拷贝. 一般情况下执行拷贝命令时会提示我们输入远程服务器的用户名和密码,这在自动执行的程序中是一个障碍,因为没有人工的干预,关于服
  在服务器之间做数据备份一般会用到远程拷贝命令,scp命令就可以做到远程拷贝,并且支持从本地到远程的拷贝和从远程到本地的拷贝.
 
  一般情况下执行拷贝命令时会提示我们输入远程服务器的用户名和密码,这在自动执行的程序中是一个障碍,因为没有人工的干预,关于服务器之间互访不需要密码的方式前面已经有介绍,可以参考前面的文章,这里介绍一下scp拷贝命令.
 
  scp 本地用户名@IP地址:文件名1 远程用户名@IP地址:文件名2
 
  [本地用户名@IP地址:] 可以不输入,可能需要输入远程用户名所对应的密码.
 
  scp 命令
 
  scp 可以在 2个 linux 主机间复制文件;
 
  命令基本格式:scp [可选参数] file_source file_target
 
  从 本地 复制到 远程:
 
  * 复制文件:
  * 命令格式:
  scp local_file remote_username@remote_ip:remote_folder
  或者
  scp local_file remote_username@remote_ip:remote_file
  或者
  scp local_file remote_ip:remote_folder
  或者
  scp local_file remote_ip:remote_file
  第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名.
 
  第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名.
 
  例程:
 
  scp /home/space/music/1.mp3 root@www.phpfensi.com:/home/root/others/music
  scp /home/space/music/1.mp3 root@www.phpfensi.com:/home/root/others/music/002.mp3
  scp /home/space/music/1.mp3 www.phpfensi.com:/home/root/others/music
  scp /home/space/music/1.mp3 www.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个参数 调换顺序 即可.
 
  例如:
 
  scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/i.mp3
  scp -r www.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。
 
 

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读