湖南长沙网站建,地方美食网站开发意义,合肥婚恋网站建设,用php做网站用到的工具crontab
crontab是linux系统自带的定时调度软件#xff0c;可用于设置周期性被执行的指令#xff0c;一般用在每天的非高峰负荷时间段运行作业#xff0c;可在无需人工干预的情况下运行作业。支持在一周或一月中的不同时段运行。 crontab命令允许用户提交、编辑或删除相应的…crontab
crontab是linux系统自带的定时调度软件可用于设置周期性被执行的指令一般用在每天的非高峰负荷时间段运行作业可在无需人工干预的情况下运行作业。支持在一周或一月中的不同时段运行。 crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。服务器备份文件我们要用crontab执行周期性的备份工作。
sshpass
sshpass 可在不直接输入密码的情况下通过 SSH 连接到远程主机并执行命令。与手动输入凭据相比sshpass 避免了手动输入密码提高自动化流程的执行效率。两台服务器之间互相备份文件要用到sshpass连接并传输文件。
步骤
1、创建sh文件如下
#!/bin/sh
source /etc/profile#设置备份的源文件夹
backup_source/home/admin/sh
#设置目的服务器地址
remote_usernameadmin
remote_ip10.10.11.60
remote_passwordqwer123
remote_folder/home/admin/sk#创建备份的缓存文件夹backup_home
backup_home/home/admin/backup_home
if [ ! -d ${backup_home} ];thenmkdir ${backup_home}if [ $? -eq 0 ]; thenecho 缓存文件夹创建成功elseecho 缓存文件夹创建失败exit 1fi
elseecho 缓存文件夹已经存在
fi#压缩文件到backup_home
date$(date %Y%m%d)
zip -q -r ${backup_home}/${date}.zip ${backup_source}
if [ $? -eq 0 ]; thenecho 文件压缩成功
elseecho 文件压缩失败exit 1
fi#从本地复制到远程
sshpass -p ${remote_password} scp ${backup_home}/${date}.zip ${remote_username}${remote_ip}:${remote_folder}
if [ $? -eq 0 ]; thenecho 从本地复制到远程成功
elseecho 从本地复制到远程失败exit 1
fi#删除backup_home下超过7天的zip文件
find ${backup_home} -mtime 7 -name *.zip -exec rm -rf {} \;这是一个可执行的sh文件。注意该文件创建后需要用chmod对此文件授权为“可执行文件”如下
//test.sh 是文件名
chmod x test.sh
2、安装sshpass
yum install sshpass
3、将sh命令文件加入crontab的运行周期
//添加周期性任务
crontab -e//进入编辑状态
35 * * * * /home/admin/sd/test.sh /home/admin/backup_home/log.txt//重启crontab
systemctl restart crond.service
4、对服务器互相传输文件动作进行授权。 注意这一步不能省略。否则crontab执行任务时会因为未授权而传输文件失败。一定要先授权再让crontab启动备份任务。
成果展示