当前位置: 首页 > news >正文

[Linux] Linux tar文档管理 系统间复制文档

目录

Linux tar文档管理

tar命令

tar包管理

打包

查看包中文件

提取

Linux系统间复制文档

Linux之间传输

scp命令

rsync命令

实战:Rsync+Sersync实现文件实时同步

部署Rsync服务

安装软件包

配置rsync

客户端配置和测试

部署Sersync服务

安装软件包

配置Sersync

运行Sersync

测试

配置systemd管理Sersync


Linux tar文档管理

tar命令

创建:

  • tar -cf etc.tar /etc

  • tar -czf etc.tar.gz /etc (-z指定压缩格式为gzip)

查看:

  • tar -tf etc.tar

提取:

  • tar -xf etc.tar -C /tmp/

  • (-C : 指定提取目录)

语法:

tar包管理

打包

#创建tar包,创建时需注意用户要有权限访问目标文件(root用户可以打包所有文件)
[11:27:16 root@server-znf ~]# tar -cf etc.tar /etc

打包时会将文件的第一个字符/剔除掉。解压时默认解压到当前位置。

#用gzip压缩
[11:51:03 root@server-znf ~]# tar -zcf etc.tar.gz /etc

再次打包时,如果存在相同的tar包会直接覆盖掉。

#可以通过添加日期确保每天打包的文件名不一致
[11:57:29 root@server-znf ~]# tar -cf etc-$(date +%y%m%d).tar /etc

查看包中文件

tar -t -f etc.tar
#配合grep过滤
tar -t -f etc.tar | grep etc/host

提取

#提取所有文件
[18:54:11 root@client-znf ~]# tar -xf etc.tar#查看其中一个目录
tree -L 1 etc/yum#提取部分文件
tar -t -f etc.tar | grep etc/host

Linux系统间复制文档

Linux之间传输

scp命令

安全复制,基于ssh协议,也就是说Linux服务器要开启ssh服务

#将client中的vmlinuz-4.18.0-553.el8_10.x86_64发送给server
scp /boot/vmlinuz-4.18.0-553.el8_10.x86_64 root@server:
#打包
tar -czf etc.tar.gz /etc
#将etc.tar.gz发送到server中的tmp目录下
scp etc.tar.gz  root@server:/tmp
#远程看server的tmp目录
ssh root@server ls /tmp
#-r:复制目录  将/etc/selinux/目录复制到server的家目录下
scp -r /etc/selinux/ root@server:
#将多个目录复制到server的家目录下
scp -r /etc/hosts /usr/share/doc/cronie/ server:

rsync命令

Rsync具有本地与远程两台主机之间的数据快速复制同步镜像、远程备份等功能,该功能类似scp,但是优于scp功能,还具有本地不同分区目录之间全量及增量复制数据。

Rsync同步数据镜像时,通过“quickcheck"算法,仅同步大小或最后修改时间发生变化的文件或目录,当然也可以根据权限,属主等属性变化的同步,所以可以实现快速同步。

安装rsync软件包:

mkdir test
touch test/file-{01..10}rsync -av test/ root@server:
rsync -av test/ root@server:touch test/file-06
rsync -av test/ root@server:

实战:Rsync+Sersync实现文件实时同步

Rsync:负责数据同步,部署在server端

Sersync:负责监控数据目录变化,并调用rsync进行同步,部署在client端

部署Rsync服务

安装软件包
dnf install -y rsync-daemon
配置rsync

本次实验使用验证用户同步

#准备同步目录
[15:14:33 root@server-znf ~]# mkdir -m 777 /backup
#配置文件
[15:14:44 root@server-znf ~]# vim /etc/rsyncd.conf

添加以下配置:

[backup]
comment = backup
path = /backup
read only = no
auth users = rsync
secrets file = /etc/rsyncd.secrets
#创建用户凭据文件
[15:16:44 root@server-znf ~]# echo 'rsync:redhat' > /etc/rsyncd.secrets
[15:17:30 root@server-znf ~]# chmod 400 /etc/rsyncd.secrets
#启用并启动rsyncd服务
[15:18:02 root@server-znf ~]# systemctl enable rsyncd --now

#配置防火墙
[15:19:07 root@server-znf ~]# firewall-cmd --add-service=rsyncd
[15:19:34 root@server-znf ~]# firewall-cmd --add-service=rsyncd --permanent 
客户端配置和测试
#准备密码文件
[15:23:26 root@client-znf ~]# echo redhat > rsyncd.secrets
[15:23:52 root@client-znf ~]# chmod 400 rsyncd.secrets
#传输测试
[15:24:05 root@client-znf ~]# rsync -v --password-file=./rsyncd.secrets /etc/hostname rsync@server::backup

验证结果

[15:21:23 root@server-znf ~]# ls /backup/

部署Sersync服务

安装软件包
#解压文件
[15:30:13 root@client-znf ~]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz 
[15:31:54 root@client-znf ~]# ls GNU-Linux-x86/

配置Sersync

配置文件示例

<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5"><host hostip="localhost" port="8008"></host><debug start="false"/><fileSystem xfs="true"/><filter start="true"><exclude expression="^cache/*"></exclude></filter><inotify><delete start="true"/><createFolder start="true"/><createFile start="false"/><closeWrite start="true"/><moveFrom start="true"/><moveTo start="true"/><attrib start="false"/><modify start="false"/></inotify><sersync><localpath watch="/app_data"><remote ip="10.1.8.10" name="backup"/></localpath><rsync><commonParams params="-azP"/><auth start="true" users="rsync" passwordfile="/root/rsyncd.secrets"/><userDefinedPort start="false" port="873"/><timeout start="false" time="100"/><ssh start="false"/></rsync><failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><crontab start="false" schedule="600"><!--600mins--><crontabfilter start="false"><exclude expression="*.php"></exclude><exclude expression="info/*"></exclude></crontabfilter></crontab><plugin start="false" name="command"/></sersync><plugin name="command"><param prefix="/bin/sh" suffix="" ignoreError="true"/><filter start="false"><include expression="(.*)\.php"/><include expression="(.*)\.sh"/></filter></plugin>
</head>

将文件放至 GNU-Linux-x86/ 下覆盖

运行Sersync

#准备同步目录
[15:38:22 root@client-znf ~]# mkdir /app_data
[15:40:35 root@client-znf ~]# cp GNU-Linux-x86/sersync2 /usr/bin/
[15:41:32 root@client-znf ~]# sersync2 -o /root/GNU-Linux-x86/confxml.xml -d

测试

#server端监控目录 /backup
#用tree查看,每秒刷新一次
watch -n 1 tree /backup

客户端创建文件或目录

client:

[15:46:13 root@client-znf ~]# mkdir /app_data/testtxt

server:

客户端删除文件

[15:51:11 root@client-znf ~]# rm -fr /app_data/*

配置systemd管理Sersync

[15:59:11 root@client-znf ~]# cp /root/GNU-Linux-x86/confxml.xml /etc/sersyncd.conf
[15:59:26 root@client-znf ~]# vim /etc/systemd/system/sersyncd.service

文件内写入:

[Unit]
Description=SerSync server daemon[Service]
Type=forking
ExecStart=/usr/bin/sersync2 -o /etc/sersyncd.conf -d[Install]
WantedBy=multi-user.target
[16:07:35 root@client-znf ~]# systemctl daemon-reload
[16:07:43 root@client-znf ~]# systemctl enable sersyncd.service

http://www.lryc.cn/news/622558.html

相关文章:

  • Rust学习笔记(四)|结构体与枚举(面向对象、模式匹配)
  • 头文件包含和前置声明
  • [Linux] Linux网络管理
  • 跨域:浏览器有同源策略,但是为何 cdn 请求资源的时候不会有跨域限制?
  • 【低成本扩容】动态扩容实战指南
  • AMD Ryzen AI Max+ 395四机并联:大语言模型集群推理深度测试
  • 开源 Arkts 鸿蒙应用 开发(十八)通讯--Ble低功耗蓝牙服务器
  • 昇腾AI自学Day2-- 深度学习基础工具与数学
  • 利用cursor+MCP实现浏览器自动化释放双手
  • vscode中使用CMake Tools生成compile_commands.json文件后,如何告诉clangd这个文件在哪里呢?
  • 新手向:Python列表、元组、集合和字典的用法对比
  • JavaScript 核心语法与实战笔记:从基础到面试高频题
  • macOS 中查看当前生效 shell 及配置文件的方法
  • linux网络基础
  • 二叉树的三种遍历方法
  • KVM虚拟化技术解析:从企业应用到个人创新的开源力量
  • 开源 Arkts 鸿蒙应用 开发(十七)通讯--http多文件下载
  • 4.6 Vue 3 中的模板引用 (Template Refs)
  • Vue中的数据渲染【4】
  • java 面试八股集锦
  • IO流-打印流
  • ROS相关的ubuntu基础教程
  • 移动互联网发展战略
  • Android面试指南(一)
  • C#WPF实战出真汁08--【消费开单】--餐桌面板展示
  • C#WPF实战出真汁09--【消费开单】--选择菜品
  • Linux软件编程--线程
  • socket编程UDP
  • 深度解析和鲸社区热门项目:电商双 11 美妆数据分析的细节与价值
  • AI Agents 2025年十大战略科技趋势