Linux 定时备份文件到另一台服务器

1. 需求

用户要求将 Tomcat 的日志文件定时备份到另一台服务器。同事给我提供了一个写好的 java 框架,但实在不想给用户再维护另一个服务了,所以另寻他法。

2. 问题

使用 scp 等跨服务器传输命令时需要手动输入用户名的密码才可进行文件传输,定时任务会卡在这个节点上。

3. 解决方案

  • 使用 crond 服务设置定时任务。
  • 使用 sshpass 跳过手动输入密码过程。
  • 使用 scp 命令传输文件。

3.1 crond 服务

3.1.1 cron 表达式
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
3.1.2 crond 服务涉及命令
# 编辑当前用户的cron表达式文件
crontab -e
# 启动服务
/sbin/service crond start
# 关闭服务
/sbin/service crond stop
# 重启服务
/sbin/service crond restart
# 重新载入配置
/sbin/service crond reload
# 查看服务状态
service crond status

3.2 sshpass + scp

# 工具安装
yum install sshpass -y
# 命令格式
# -p password 提供密码作为参数(安全性不明智)
sshpass -p password scp source_directory username@destination_ip:destination_directory
# 示例
sshpass -p 123456 scp /root/test.txt root@192.168.21.1:/root/

4. 参考资料

[1] 几种方法来实现scp拷贝时无需输入密码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值