文章目录
- 一,脚本样例
-
- 1, 初始版本
- 2, 优化版本(pigz|pv)
- 二,代码拆分及含义
-
- 1, 本地操作部分:**`tar -czf – gitbook`**
- 2,管道部分:**`|`**
- 3,远程操作部分:**`ssh root@118.178.93.190 'tar -xzf – -C /work'`**
- 三,辅助脚本
- 四,总结
一,脚本样例
该脚本代码主要实现将本地的 gitbook 文件或目录打包压缩后,通过 SSH 远程传输到指定服务器的 /work 目录下。
1, 初始版本
#安装工具
yum install -y pigz pv
#压缩gitbook目录传输
cd /gitee
tar -czf – gitbook|ssh root@118.178.93.190 'tar -xzf – -C /work'
#压缩文件传输
tar -czf – nginx\\:1.31-alpine-slim.tar.gz|ssh root@118.178.93.190 'tar -xzf – -C /work'
2, 优化版本(pigz|pv)
#压缩gitbook目录传输
cd /gitee
tar -cf – gitbook|pigz|pv|ssh root@118.178.93.190 'tar -xzf – -C /work'
#压缩文件传输
tar -cf – nginx\\:1.31-alpine-slim.tar.gz|pigz|pv|ssh root@118.178.93.190 'tar -xzf – -C /work'
pigz命令是Linux系统中用于文件压缩的工具,属于gzip的并行实现,旨在利用多核处理器的优势来加速压缩过程, 它支持gzip的所有选项和压缩级别,兼容性良好。
pv 命令可以用于计算数据传输的速度,显示进度条以及估算剩余时间等。
运行结果
[root@00fly gitee]# ls
docker-demo docker-run dos2unix.sh effict-side gitbook git-update.sh microservice-all-in-one springcloud-swarm
[root@00fly gitee]# tar -czf – gitbook|ssh root@118.178.93.190 'tar -xzf – -C /work'
root@118.178.93.190's password:
下面对代码进行详细拆分解释
二,代码拆分及含义
1, 本地操作部分:tar -czf – gitbook
-
tar:是 Linux 系统中用于文件打包和压缩的命令。
-
-c:创建一个新的归档文件,即打包文件。
-
-z:表示使用 gzip 算法进行压缩,将打包后的文件进一步压缩。
-
-f:指定归档文件的名称,这里 – 表示将打包压缩后的文件输出到标准输出(stdout),而不是保存为本地的文件。
-
-:不写出本地文件,直接把数据写到到标准输出(stdout)。
-
gitbook:是需要打包压缩的本地文件或目录。
2,管道部分:|
- 管道符号 | 的作用是将前一个命令(tar -czf – gitbook)的标准输出作为后一个命令(ssh)的标准输入。
3,远程操作部分:ssh root@118.178.93.190 'tar -xzf – -C /work'
-
ssh:用于通过网络安全地连接到远程服务器的命令。
-
root@118.178.93.190:root 是远程服务器的用户名,118.178.93.190 是远程服务器的 IP 地址,这部分表示以 root 用户身份连接到 IP 为 118.178.93.190 的远程服务器。
-
'tar -xzf – -C /work':这是在远程服务器上执行的命令。
-x:表示从归档文件中提取文件,即解包。
-z:表示使用 gzip 算法进行解压缩。
-f:指定要操作的归档文件,这里 – 表示从标准输入(stdin)读取数据,也就是接收通过 SSH 管道传输过来的数据。
-:表示接受标准输入(stdin)的数据。
-C /work:将解包解压缩后的文件放置到 /work 目录下。
三,辅助脚本
file-p2p.sh
#!/bin/bash
# ================= 配置区域 ================
#本服务器文件或目录
LOCAL=gitbook
#远程服务器ip
SERVER=118.178.93.190
#远程服务器文件或目录保存地址
DIR=/work
# ============= 迁移命令生成区域 ============
#目录或文件跨服务器迁移命令
echo "tar -cf – ${LOCAL}|pigz|pv|ssh root@${SERVER} 'tar -xzf – -C ${DIR}'"
- 调试(仅输出待执行的shell)
- 运行(结果输出给管道命令|执行)
#调试
sh file-p2p.sh
#运行
sh file-p2p.sh|sh
四,总结
该脚本的整体功能是将本地的 gitbook 文件或目录进行打包压缩,然后通过 SSH 连接将压缩数据传输到远程服务器,并在远程服务器上进行解包解压缩操作,将文件放置到 /work 目录下。
朋友们,你学会了吗?
–over–
网硕互联帮助中心




评论前必须登录!
注册