Linux 定时执行任务【备份】

本文详细介绍了如何使用Cron进行定时任务设置,包括编辑、查看和删除定时任务的方法。同时,提供了数据库备份脚本的示例,展示了如何通过定时任务实现MySQL数据库的定期备份。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考资料:https://www.cnblogs.com/M-98k/p/12674705.html

https://www.jianshu.com/p/d6d8d9f7f60c

详细的参考资料:https://www.cnblogs.com/intval/p/5763929.html

1、crontab  -e 进入定时任务编辑界面

如上,输入定时命令

00 01 * * * /bin/sh ~/database_backup.sh

如果进入的‘GNU nano 2.5.3’输入框,请使用‘ctr+O’进行保存,然后‘ctr+X’退出。

2、查看生成的定时任务文件

cd /var/spool/cron/crontabs

3、其他常用命令

crontab -l  查看当前用户的定时任务列表
crontab -r 清空当前用户的定时任务列表

4、数据库mysqldump安装

yum -y install mysql-client    / apt-get install mysql-client

5、脚本文件database_backup.sh如下:

#!/bin/bash
dbpwd='123456'

dbuser='root'

hosts=(106.259.12.60 )
port=7083

DATE=`date "+%Y-%m-%d"`

save_sql_file=`date "+%H-%M-%S"`

save_sql_name=$save_sql_file".sql"
 
BACKUP_PATH=/home/gaofei/project/db_bachup/follow_up_visit/v2

LOG=$BACKUP_PATH/$DATE/$save_sql_file"backup.log"
echo ${LOG}

keep_backup_days=10

# if BACKUP_PATH doesn't exists,mkdir
[ -d $BACKUP_PATH ] || mkdir  -p $BACKUP_PATH/$DATE

if [ !-d$BACKUP_PATH/$DATE ];then

       mkdir -p $BACKUP_PATH/$DATE

fi

for host in ${hosts[*]}
do
        alldb=(`echo show databases|mysql -u$dbuser -p$dbpwd -h$host -P$port --default-character-set=utf8mb4 |grep -v "information_schema\|mysql\|performance_schema\|sys\|Database"`)         
         echo -e "=================== $host $DATE `date +%T` DUMP Begin =============="  >>$LOG
        /usr/local/mysql/bin/mysqldump -u$dbuser -p$dbpwd -h$host -P$port  --default-character-set=utf8mb4  --single-transaction --master-data=2 --triggers --routines --events --complete-insert --set-gtid-purged=OFF --databases ${alldb[*]} >$BACKUP_PATH/$DATE/$save_sql_name 2>>$LOG
        echo -e "=================== $host $DATE `date +%T` DUMP End ================ " >>$LOG
        if [ $? -eq 0 ];then
              echo "$(date +%F%T) $host backup is Success and End" >> success.txt
              find $BACKUP_PATH -mtime +1 -type d -exec rm -rf {} \;
        fi
done







# mysqldump -uroot -p123456 -h111.205.137.59 -P7083 --default-character-set=utf8mb4 --single-transaction --master-data=2 --triggers --routines --events --complete-insert --set-gtid-purged=OFF --databases follow_up_db2.0 >> /home/gaofei/project/db_bachup/follow_up_visit/v2/111.sql

完成后重新加载/etc/init.d/crond restart   或者  /etc/init.d/crond restart   ,看到ok字样表名重新加载成功。

6、在运行sh文件之前,请先转义:

sed -i 's/\r$//' xxx.sh

7、定时任务简介

crontab每分钟定时执行:
*/1 * * * * service mysqld restart //每隔1分钟执行一次
*/10 * * * * service mysqld restart //每隔10分钟执行一次
 
crontab每小时定时执行:
0 */1 * * * service mysqld restart //每1小时执行一次
0 */2 * * * service mysqld restart //每2小时执行一次
 
crontab每天定时执行:
0 10 * * * service mysqld restart //每天10点执行
30 19 * * * service mysqld restart //每天19点30分执行
 
crontab每周定时执行:
0 10 * * 1 service mysqld restart //每周一10点执行
30 17 * * 5 service mysqld restart //每周五17点30分执行
 
crontab每年定时执行:
0 10 1 10 * service mysqld restart //每年的10月1日10点执行
0 20 8 8 * service mysqld restart //每年的8月8日20点执行

8、mysql导入定时生成的文件

(1)、从mysql中导出数据库test:
在终端运行:mysqldump -h localhost -u root -p test > /home/chuzj/daochu.sql
其中localhost是服务器名字 test是数据库名字,其后可以直接跟表名

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值