使用脚本同步文件

1、配置root用户的ssh免密登陆

1)su root

2)ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

3)ssh-copy-id root@s101(s102,s103,s104)

2、将所有节点的"jps"命令创建符号链接:sudo ln -s /soft/jdk/bin/ /usr/local/bin/jps

3、nano xcall.sh ====== 编写脚本,并放到"/usr/local/bin"目录下,作用:远程在其他节点执行命令,并将结果显示在当前节点

#!/bin/bash
for((i=101; i<=105; i++)) ; do
    tput setaf 2
    echo -------- s$i $@ --------
    tput setaf 7
    ssh s$i $@
done

4、使用root用户在所有机器上安装rsync:xcall.sh yum install -y rsync

5、nano xsync.sh ====== 编写脚本,并放到"/usr/local/bin"目录下,作用:将文件发送到其他节点的相同目录下

#!/bin/bash
name=`whoami`
# 指定文件所在文件夹名称
dir=`dirname $1`
# 指定文件的文件名
filename=`basename $1`
# 进入到dir中
cd $dir
# 得到当前目录的绝对路径
fullpath=`pwd`
for((i=102 ; i<=105; i++)) ; do
    tput setaf 2
    echo -------- s$i $@ --------
    tput setaf 7
    rsync -lr $filename "$name"@s"$i":$fullpath
done

6、举例:xsync.sh /etc/hosts ====== 同步hosts文件

您可以使用以下脚本来将文件同步到另外一台服务器上: ``` #!/bin/bash # 设置源文件和目标文件路径 SRC_FILE="/path/to/source/file" DEST_HOST="remote_host" DEST_USER="remote_user" DEST_FILE="/path/to/destination/file" # 判断源文件是否存在 if [ ! -f "${SRC_FILE}" ]; then echo "源文件 ${SRC_FILE} 不存在!" exit 1 fi # 判断目标文件所在的远程服务器是否可达 if ! ping -c 1 "${DEST_HOST}" &> /dev/null; then echo "目标文件所在的远程服务器 ${DEST_HOST} 不可达!" exit 1 fi # 使用 scp 命令将文件同步到目标服务器 scp "${SRC_FILE}" "${DEST_USER}@${DEST_HOST}:${DEST_FILE}" echo "文件 ${SRC_FILE} 同步到 ${DEST_HOST}:${DEST_FILE} 完成!" ``` 在脚本中,您需要设置源文件和目标文件的路径,以及目标服务器的主机名、用户名和目标文件路径。脚本会先判断源文件是否存在,然后判断目标服务器是否可达。如果一切正常,就使用 scp 命令将文件同步到目标服务器。 您可以将以上脚本保存到一个文件中,例如 sync.sh,然后在终端中执行以下命令来运行脚本: ``` bash sync.sh ``` 如果您想要定期同步文件,可以使用 crontab 命令来设置定时任务。例如,如果您想要每天晚上10点将文件同步到目标服务器上,可以执行以下命令: ``` crontab -e ``` 在打开的文件中添加以下内容: ``` 0 22 * * * /path/to/sync.sh ``` 其中,“0 22 * * *” 表示每天晚上10点执行同步脚本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值