【Linux】简单同步脚本

1. 同步指令简介

1.1 rsync指令

rsync(Remote Sync),linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。
目前已支持跨平台,可以在Windows与Linux间进行数据同步。

rsync指令介绍:

  • 可实现本地主机和远程主机上的文件同步(包括本地推到远程,远程拉到本地两种同步方式)
  • 可实现本地不同路径下文件的同步
  • 无法实现远程路径1到远程路径2之间的同步(scp可以实现)

安装:

# Ubuntu 安装:
sudo apt-get install rsync
# RedHat 安装:
sudo yum -y install rsync

基本用法:

rsync [选项] 源文件/目录 目标路径
  • 选项:
    • -az:压缩文件传输,节省带宽与传输时间
    • -v:显示详细的文件传输过程
    • -r:递归传输,可传输目录及其子目录下所有文件
    • -l:保留源文件链接属性
    • -p:保留源文件权限属性
    • --delete:删除目标目录中源目录中不存在的文件
    • --exclude:排除指定的文件或目录
    • --progress:显示传输过程的进度
    • --dry-run:模拟执行,显示即将执行操作,但不实际执行
    • --bwlimit:限制传输速率,控制带宽
    • --password-file:指定密码文件,用于远程服务器身份验证
    • --ignore-errors:忽略错误,继续传输其他文件

1.2 scp指令

SCP(Secure Copy Protocol),一个用于在本地系统和远程服务器之间复制文件的命令行工具,一种用于在计算机之间安全地传输文件的协议。它通过加密的方式在网络上安全地复制文件。SCP基于SSH(Secure Shell)协议,因此它提供了加密的连接和身份验证,确保数据在传输过程中的安全性。

基本用法:

scp [选项] 源文件/目录 目标路径
  • 选项:
    • -r:递归传输,可传输目录及其子目录下所有文件
    • -P:制定SSH端口号
    • -i:指定身份文件,即私钥文件

2. 简单同步脚本

脚本仅可担任简单学习同步任务,为课后练习。


在某用户/bin目录创建文件xsync,确保该用户可以在任何目录执行xsync指令。

cd /home/xxx/bin
vim xsync

简单同步脚本,xsync代码如下:

#!/bin/bash
if [ $# -lt 1 ]
then
  echo Not Enough Arhuments!
  exit;
fi

args=("$@")
file=${args[0]}

for ((i = 1 ; i < $#; i++))
do
  host=${args[i]}
  echo ====================  $host  ====================
  if [ -e $file ]
  then
    pdir=$(cd -P $(dirname $file); pwd)
    ssh $host "mkdir -p $pdir"
    rsync -av $pdir/$fname $host:$pdir
  else
    echo $file does not exists!
  fi
done

为用户设定该脚本文件执行权限。

chmod +x xsync
chmod 777 xsync

脚本选项执行参数:

# xsync 文件路径 各主机host...
xsync <file_path> <hosts>...

脚本执行举例:

# 将/tmp/a.txt 文件同步至 myhost1 myhost2 myhost3 三台主机的对应目录(已修改hosts文件,保存静态IP地址)
xsync /tmp/a.txt myhost1 myhost2 myhost3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值