[TOC]
cron介绍
我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。
- /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
- /etc/crontab 这个文件负责调度各种管理和维护任务。
- /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
- 我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次,也可手动执行run-parts 命令执行相关脚本 ,如:run-parts /etc/cron.weekly/(注意,将会执行目录下的所有任务)
定时备份nexus
新建cron脚本备份目录
mkdir -p /root/backup_cron
新建nexus备份脚本
cd /root/backup_cron
touch backup_nexus.sh;
# 输入下述内容
# begin
# nexus文件目录位置
source_nexus_path=/home/nexus
# 备份时间,默认为当前日期
backup_date=`date +%Y-%m-%d`
# 每次备份的时间间隔,用于删除以前的备份文件
backup_interval=7;
# 备份开始时间
backup_start_time=$(date +%s);
echo '$(date "+%Y-%m-%d %H:%M:%S") 开始备份nexus【'$backup_date'】数据';
# 创建备份目录
echo $(date "+%Y-%m-%d %H:%M:%S") '开始创建nexus【'$backup_date'】备份目录';
mkdir /data/backup/nexus/`date +%Y-%m-%d`
echo $(date "+%Y-%m-%d %H:%M:%S") 'nexus【'$backup_date'】备份目录创建成功';
cd /home/nexus;
echo $(date "+%Y-%m-%d %H:%M:%S") '开始备份【nexus-3.66.0-02】目录';
cp -r nexus-3.66.0-02 /data/backup/nexus/`date +%Y-%m-%d`
echo $(date "+%Y-%m-%d %H:%M:%S") '结束备份【nexus-3.66.0-02】目录';
echo $(date "+%Y-%m-%d %H:%M:%S") '开始备份【nexus.properties】文件';
cp nexus.properties /data/backup/nexus/`date +%Y-%m-%d`
echo $(date "+%Y-%m-%d %H:%M:%S") '结束备份【nexus.properties】文件';
echo $(date "+%Y-%m-%d %H:%M:%S") '开始备份【sonatype-work】目录';
cp -r sonatype-work /data/backup/nexus/`date +%Y-%m-%d`
echo $(date "+%Y-%m-%d %H:%M:%S") '结束备份【sonatype-work】目录';
# 删除以前的备份
need_delete_backup_dir=`date -d "-$backup_interval day" +"%Y-%m-%d"`;
echo $(date "+%Y-%m-%d %H:%M:%S") '开始删除nexus历史备份【'$need_delete_backup_dir'】';
rm -rf /data/backup/nexus/`date -d "-$backup_interval day" +"%Y-%m-%d"`
echo $(date "+%Y-%m-%d %H:%M:%S") '结束删除nexus历史备份【'$need_delete_backup_dir'】';
# 结束备份时间
backup_end_time=$(date +%s);
# 计算时间差,单位:秒
time_diff=$((backup_end_time - backup_start_time))
echo $(date "+%Y-%m-%d %H:%M:%S") 'nexus【'$backup_date'】数据已备份完成,耗时:【'$time_diff'】s';
# end
# 授予可执行权限
chmod 755 backup_nexus.sh
添加定时任务
crontab -e
# 添加以下脚本并保存(时间可自行调整),并删除记录日志
# 每周六晚上11点执行脚本
0 23 * * 6 /root/backup_cron/backup_nexus.sh >> /root/backup_cron/backup_nexus.log 2>&1;
# 重载定时任务
systemctl restart crond;
# 查看编写的定时任务
crontab -l;
0 23 * * 6 /root/backup_cron/backup_nexus.sh >> /root/backup_cron/backup_nexus.log 2>&1;