linux下文件同步脚本

来源:互联网 发布:蚁群算法优化问题 编辑:程序博客网 时间:2024/05/29 14:35

       文件传输在linux下是很容易通过scp协议和命令实现的,本脚本是同步集群的文件夹的文件,也可以单独同步某个机器。

各个机器直接最好设置无密登陆,否则中间会不断的要求输入登陆密码。

脚本如下:

#! /bin/bash#目的主机的登录名USERNAME=hadoopfunction synfiles(){ host=$2dir=$(ls $1); #获取需要同步文件列表for file in $dirdo    fs=$1/$file;   echo $fs;   if [ -f $fs ];    then     scp  $fs $USERNAME@$host:$fs;   elif [ -d $fs ];    then      scp -r  $fs $USERNAME@$host:$fs;   fidone}function gethost(){    path=$1   #获取同步主机列表,目前是从/etc/host中获取    hosts=$(awk '/slave/ {print $2}' /etc/hosts)     for host in $hosts    do       echo 'beginning synchronize $host files'       synfiles $path $host    done}dir=if [ ! $1 ];then dir=/var/logelse dir=$1fiecho 'synic files in'$dir#同步指定的主机if [ $2 ];then        host=$2       echo "beginning synchronize ${host} files"       synfiles $path $2else   #同步默认设置的主机列表  gethost $dirfi


0 0
原创粉丝点击