spawn+rsync同步文件至其它服务器

11 篇文章 0 订阅

linux下shell脚本同步文件

使用spawn + rsync
  • 准备
# 安装包
yum -y install expect 
yum -y install rsync
  • 使用
# 循环次数
num=3
#备份保存路径
database_list=(dacdb data_center mds_server_deploy commdb data_standard data_standard_database ent_portrait data_management_db)
#日期
dd=`date +%Y%m%d`
#备份工具
tool=mysqldump
host=192.168.147.233
#用户名
username=xxxxxxx
#密码
password=xxxxxxx
#将要备份的数据库

# 导出数据文件
for database in ${database_list[@]}
do
    backup_dir=/data/mysqldata/233/${database}
    #如果文件夹不存在则创建
    if [ ! -d $backup_dir ];
    then
        mkdir -p $backup_dir;
    fi
    cd $backup_dir && rm -rf *.sql
    echo "$tool -u $username -p****** -h$host $database > $backup_dir/$database-$dd.sql"
    $tool -u $username -p$password -h$host $database > $backup_dir/$database-$dd.sql
done
# 压缩文件
cd /data/mysqldata/ && tar -cvf 233.tar 233/

pass="1234asdf!"

for i in seq 1 ${num}
do
    echo ${i}
expect -c "
set timeout 2000
spawn rsync -avLP /data/mysqldata/233.tar scp01@192.168.147.234:/data/MYSQL_BACKUP/

expect {
        \"*assword\" {send \"$pass\n\"}
}
expect eof"

done
  • Rsync命令对应选项
-a #归档模式传输, 等于-tropgDl
-v #详细模式输出, 打印速率, 文件数量等
-z #传输时进行压缩以提高效率
-r #递归传输目录及子目录,即目录下得所有目录都同样传输。
-t #保持文件时间信息
-o #保持文件属主信息
-p #保持文件权限
-g #保持文件属组信息
-l #保留软连接
-P #显示同步的过程及传输时的进度等信息
-D #保持设备文件信息
-L #保留软连接指向的目标文件
-e #使用的信道协议,指定替代rsh的shell程序
--exclude=PATTERN #指定排除不需要传输的文件模式
--exclude-from=file #文件名所在的目录文件
--bwlimit=100 #限速传输
--partial #断点续传
--delete #让目标目录和源目录数据保持一致
--password-file=xxx #使用密码文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值