CentOS进行免密登录、定时进行文件同步

目录

前言

一、机器A免密登录机器B

1. 在机器A创建ssh key

 2. 将机器A的 id_rsa.pub 公钥内容追加到机器B的 /root/.ssh/authorized_keys 文件中

 3. 修改机器B的文件权限

 4. 机器A通过SSH免密登录机器B

二、通过rsync进行同步

1. 机器A和机器B均安装rsync

2. 机器B的文件同步到机器A

三、将rsync同步命令加到定时任务

1. 创建定时任务

2. 启动定时执行

3. 查看crond日志

4. 验证


前言

        机器A想要同步机器B某个路径下的文件,可以先配置机器A免密登录机器B,然后再通过rsync进行同步,并将rsync同步命令加到定时任务中。

一、机器A免密登录机器B

1. 在机器A创建ssh key

        输入ssh-keygen ,按三次Enter,在 /root/.ssh/ 目录下会生成公钥(id_rsa)和私钥(id_rsa.pub)

ssh-keygen

 2. 将机器A的 id_rsa.pub 公钥内容追加到机器B的 /root/.ssh/authorized_keys 文件中

        输入 ssh-copy-id root@机器B的IP ,需要输入机器B的密码

ssh-copy-id root@机器B的IP,例如:ssh-copy-id root@172.16.10.10

         此时在机器B的 /root/.ssh/ 下会新增了文件:authorized_keys

 3. 修改机器B的文件权限

chmod 700 /root/
chmod 700 /root/.ssh/
chmod 600 /root/.ssh/authorized_keys

注意:如果不修改机器B的文件权限的话,会出现:机器A使用 ssh root@机器B的IP 还是需要输入密码,查看机器B的日志(tail -200f /var/log/secure),会有打印:Authentication refused: bad ownership or modes for directory /root

 4. 机器A通过SSH免密登录机器B

        输入:ssh root@机器B的IP

ssh root@机器B的IP,例如:ssh root@172.16.10.10

二、通过rsync进行同步

1. 机器A和机器B均安装rsync

​​​​​​​yum install -y rsync

2. 机器B的文件同步到机器A

/usr/bin/rsync -avH -P root@机器B:路径B的路径 机器A的路径 &> /dev/null,例如:
/usr/bin/rsync -avH -P root@172.16.10.10:/home/file1/ /home/file1/ &> /dev/null

三、将rsync同步命令加到定时任务

1. 创建定时任务

crontab -e
输入你想定时执行的命令,例如每5分钟执行一次机器B的/home/file1目录同步到机器A的/home/file1
*/5 * * * * /usr/bin/rsync -avH -P root@172.16.10.10:/home/file1/ /home/file1 &> /dev/null

        wq保存退出(和vi命令的保存退出相同)

补充 crontab 文件语法(参考链接:Linux之crontab -e定时任务_crontab-e_不忘初心fight的博客-CSDN博客):

分  小时  日  月  星期  命令

几个特殊符号的含义:

         “*”代表取值范围内的数字,
         “/”代表”每”,
         “-”代表从某个数字到某个数字,
         “,”分开几个离散的数字

30     3       10,20     *     *     ls             每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25     8-11    *         *     *     ls             每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15   *       *         *     *     ls             每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30     6       */10      *     *     ls             每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ]

2. 启动定时执行

systemctl start crond
systemctl enable crond

3. 查看crond日志

        crontab的运行日志可以在 /var/log/cron.log 文件中,如果没有/var/log/cron.log文件,试一下 /var/log/cron 

(参考链接:linux crontab使用及日志查看_crontab 日志_ximi_xuexi的博客-CSDN博客

4. 验证

        在机器B的 /home/file1 目录下增加文件1,5分钟后在机器A的 /home/file1 目录下上查看是否同样新增了文件1,新增则表示同步成功。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值