博客列表 >商城系统在linux系统中定时备份MySQL数据库并删除七天前的备份文件

商城系统在linux系统中定时备份MySQL数据库并删除七天前的备份文件

>_<的博客
>_<的博客原创
2019年06月27日 17:12:29419浏览

数据库是商城软件中重要的组成部分,定时任务能周期性地自动执行中的程序必要的业务逻辑,以DSMall开源商城系统每日店铺结算的业务逻辑为例:

#!/bin/bash

# Name:bakmysql.sh

# This is a ShellScript For Auto DB Backup and Delete old Backup

#备份地址

backupdir=/home/mysqlbackup

#备份文件后缀时间

time=_` date +%Y_%m_%d_%H_%M_%S `

#需要备份的数据库名称

db_name=test

#mysql 用户名

db_user=root

#mysql 密码

db_pass=123456

mysqldump -u $db_user -p$db_pass $db_name | gzip > $backupdir/$db_name$time.sql.gz

#删除一分钟之前的备份文件

find $backupdir -name $db_name"*.sql.gz" -type f -mmin +1 -exec rm -rf {} \; > /dev/null 2>&1

   

保存退出

说明:

代码中 time=` date +%Y%m%d%H `也可以写为time=”$(date +”%Y%m%d$H”)”
其中`符号是TAB键上面的符号,不是ENTER左边的’符号,还有date后要有一个空格。
db_name:数据库名;
db_user:数据库用户名;
db_pass:用户密码;
-type f    表示查找普通类型的文件,f表示普通文件。
-mtime +7   按照文件的更改时间来查找文件,+7表示文件更改时间距现在7天以前;如果是 -mmin +7表示文件更改时间距现在7分钟以前。

-exec rm {} ;   表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个,最后是一个分号。
/dev/null 2>&1  把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到***桶里面;其中的&表示让该命令在后台执行。

定时执行

bak_config 文件代码如下

?#every day exec

0 0 * * * /home/bak_sh/bak_day.sh

#every week exec

0 0 * * 0 /home/bak_sh/bak_week.sh

#every month exec

0 0 1 * * /home/bak_sh/bak_month.sh

   

先用查询状态命令查询crond状态,如果处在停止状态则须先启动;如已在启动状态,则无须理会。

操作命令如下:

  /sbin/service crond start 启动

  /sbin/service crond restart 重启

  /sbin/service crond stop 停止

  /sbin/service crond status 查询状态

查看服务是否已经运行用 

ps -ax | grep cron

查看调度任务
crontab -l //列出当前的所有调度任务
crontab -r   //删除所有任务调度工作

添加调度任务

crontab /home/bak_sh/bak_config

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议