Linux系统复制文件/文件夹到远程服务器
从一个服务器复制文件到另一个服务器,或者从本地到远程复制是 Linux 管理员的日常任务之一。
我觉得不会有人不同意,因为无论在哪里这都是你的日常操作之一。有很多办法都能处理这个任务,我们试着加以概括。你可以挑一个喜欢的方法。当然,看看其他命令也能在别的地方帮到你。 |
我已经在自己的环境下测试过所有的命令和脚本了,因此你可以直接用到日常工作当中。
通常大家都倾向 scp,因为它是文件复制的原生命令native command之一。但本文所列出的其它命令也很好用,建议你尝试一下。
文件复制可以轻易地用以下四种方法。
scp:在网络上的两个主机之间复制文件,它使用 ssh 做文件传输,并使用相同的认证方式,具有相同的安全性。
rsync:是一个既快速又出众的多功能文件复制工具。它能本地复制、通过远程 shell 在其它主机之间复制,或者与远程的 rsync 守护进程daemon 之间复制。
pscp:是一个并行复制文件到多个主机上的程序。它提供了诸多特性,例如为 scp 配置免密传输,保存输出到文件,以及超时控制。
prsync:也是一个并行复制文件到多个主机上的程序。它也提供了诸多特性,例如为 ssh 配置免密传输,保存输出到 文件,以及超时控制。
scp
命令可以让我们从本地系统复制文件/文件夹到远程系统上。
我会把 output.txt 文件从本地系统复制到 2g.CentOS.com 远程系统的 /opt/backup 文件夹下。
# scp output.txt root@2g.CentOS.com:/opt/backup output.txt 100% 2468 2.4KB/s 00:00
# scp output.txt passwd-up.sh root@2g.CentOS.com:/opt/backup output.txt 100% 2468 2.4KB/s 00:00
passwd-up.sh 100% 877 0.9KB/s 00:00
这会连同shell-script 文件夹下所有的文件一同复制到/opt/back 下。
# scp -r /home/daygeek/2g/shell-script/ root@:/opt/backup/ output.txt 100% 2468 2.4KB/s 00:00
ovh.sh 100% 76 0.1KB/s 00:00
passwd-up.sh 100% 877 0.9KB/s 00:00
passwd-up1.sh 100% 7 0.0KB/s 00:00
server-list.txt 100% 23 0.0KB/s 00:00
如果你想复制同一个文件到多个远程服务器上,那就需要创建一个如下面那样的小 shell 脚本。
并且,需要将服务器添加进 server-list.txt 文件。确保添加成功后,每个服务器应当单独一行。
# file-copy.sh #!/bin/sh
for server in `more server-list.txt`
do
scp /home/daygeek/2g/shell-script/output.txt root@$server:/opt/backup
done
# chmod +x file-copy.sh
# ./file-copy.sh output.txt 100% 2468 2.4KB/s 00:00
output.txt 100% 2468 2.4KB/s 00:00
# file-copy.sh #!/bin/sh
for server in `more server-list.txt`
do
scp /home/daygeek/2g/shell-script/output.txt passwd-up.sh root@$server:/opt/backup
done
# ./file-cp.sh output.txt 100% 2468 2.4KB/s 00:00
passwd-up.sh 100% 877 0.9KB/s 00:00
output.txt 100% 2468 2.4KB/s 00:00
passwd-up.sh 100% 877 0.9KB/s 00:00
# file-copy.sh #!/bin/sh
for server in `more server-list.txt`
do
scp -r /home/daygeek/2g/shell-script/ root@$server:/opt/backup
done
# ./file-cp.sh output.txt 100% 2468 2.4KB/s 00:00
ovh.sh 100% 76 0.1KB/s 00:00
passwd-up.sh 100% 877 0.9KB/s 00:00
passwd-up1.sh 100% 7 0.0KB/s 00:00
server-list.txt 100% 23 0.0KB/s 00:00 output.txt 100% 2468 2.4KB/s 00:00
ovh.sh 100% 76 0.1KB/s 00:00
passwd-up.sh 100% 877 0.9KB/s 00:00
passwd-up1.sh 100% 7 0.0KB/s 00:00
server-list.txt 100% 23 0.0KB/s 00:00
pscp
命令可以直接让我们复制文件到多个远程服务器上。
# pscp.pssh -H 2g.CentOS.com /home/daygeek/2g/shell-script/output.txt /opt/backup [1] 18:46:11 [SUCCESS] 2g.CentOS.com
# pscp.pssh -H 2g.CentOS.com /home/daygeek/2g/shell-script/output.txt ovh.sh /opt/backup [1] 18:47:48 [SUCCESS] 2g.CentOS.com
# pscp.pssh -H 2g.CentOS.com -r /home/daygeek/2g/shell-script/ /opt/backup [1] 18:48:46 [SUCCESS] 2g.CentOS.com
# pscp.pssh -h server-list.txt /home/daygeek/2g/shell-script/output.txt /opt/backup [1] 18:49:48 [SUCCESS] 2g.CentOS.com
[2] 18:49:48 [SUCCESS] 2g.Debian.com
# pscp.pssh -h server-list.txt /home/daygeek/2g/shell-script/output.txt passwd-up.sh /opt/backup [1] 18:50:30 [SUCCESS] 2g.Debian.com
[2] 18:50:30 [SUCCESS] 2g.CentOS.com
使用下面的命令递归地复制文件夹到多个远程服务器。
# pscp.pssh -h server-list.txt -r /home/daygeek/2g/shell-script/ /opt/backup [1] 18:51:31 [SUCCESS] 2g.Debian.com
[2] 18:51:31 [SUCCESS] 2g.CentOS.com
最新文章
- 自定义view(二)
- ecshop发票不能使用出现flow.php on line 723等报错
- js验证中英文
- DOM4J介绍与代码示例【转载】
- Centos System Info
- (转载)MySQL关键字ORDER BY的使用
- Deep Learning 学习随记(六)Linear Decoder 线性解码
- Oracle EBS-SQL (INV-3):检查仓库库存价值明细.sql
- [bzoj4868][Shoi2017]期末考试
- 在servlet中使用spring注解
- 给Ubuntu系统清理垃圾
- kali2016.2(debian)快速安装mysql5.7.17
- Django之CRM项目Day6-公私户转换问题解决 班主任功能
- vue实现部分页面导入底部 vue配置公用头部、底部,可控制显示隐藏
- Linux小技巧之:两种方法统计访问web网站的前10个IP
- laravel5.1接收ajax数据
- 【转】利用HTML5开发Android
- spring boot(6)-JdbcTemplate访问数据库
- iframe 框架 父页面与子界面之间的变量、函数、元素获取
- python之路 IO多路复用 线程进程初步了解
热门文章
- 五种UML工具
- 20165235 祁瑛 2018-3 《Java程序设计》第四周学习总结
- miniui格式化日期的方法
- Idea中快捷键与小技巧的总结-->;持续更新
- Editor HDU - 4699 (栈)
- 从小白到区块链工程师:第一阶段:Go语言中的函数学习(6)
- asp.net core 上使用redis探索(3)--redis示例demo
- 一道有意思的找规律题目 --- CodeForces - 964A
- 洛谷.3369.[模板]普通平衡树(fhq Treap)
- pip命令无法使用