2019独角兽企业重金招聘Python工程师标准>>>
1、创建shell脚本
注意把以下命令中的DatabaseName换为实际的数据库名称;
当然,你也可以使用其实的命名规则!
vi bkDatabaseName.sh
我是对备份的数据进行压缩备份所以shell脚本的内容是
#!/bin/bash
mysqldump -uusername -ppassword DatabaseName | gzip > /opt/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz
find /opt -mtime +10 -name "*.*" -exec rm -rf {} \;
其中username填写你数据库的用户吗 password填写你数据库的密码 DatabaseName 填写你要备份的数据的名称
然后 /opt/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz 表示备份到/opt的目录下 后面就是创建的文件名的时间的正则
语句写法:
find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;
删除N天前数据:
find /opt -mtime +10 -name "*.*" -exec rm -rf {} \;
将/opt目录下所有10天前带"."的文件删除
find:linux的查找命令,用户查找指定条件的文件
/usr/local/backups:想要进行清理的任意目录
-mtime:标准语句写法
+10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件
"*.*":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三
-exec:固定写法
rm -rf:强制删除文件,包括目录
{} \; :固定写法,一对大括号+空格+\+;
注意:
需要在linux下使用vi命令进行编辑shell脚本,如果在windows下直接创建然后上传的话由于内部的格式不同,会导致从windows上传的shell脚本在linux下执行的时候不可用.
2、cd到shell脚本的路劲下,给shell脚本添加可执行权限
chmod u+x bkDatabaseName.sh
添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用;
./bkDatabaseName.sh
3、添加计划任务
检测或安装 crontab
确认crontab是否安装:
执行 crontab 命令如果报 command not found,就表明没有安装
# crontab
-bash: crontab: command not found
输入后没有任何反应表示已安装crontab
如时没有安装 crontab,需要先安装它,具体步骤请参考:
CentOS下使用yum命令安装计划任务程序crontab
使用rpm命令从CentOS系统盘安装计划任务程序crontab
添加计划任务
执行命令:
crontab -e
这时就像使用vi编辑器一样,可以对计划任务进行编辑。
输入以下内容并保存:
*/1 * * * * /opt/bkDatabaseName.sh
具体是什么意思呢?
意思是每一分钟执行一次shell脚本“/opt/bkDatabaseName.sh”
时间的格式是
分 时 日 月 周
此时定时任务已创建成功。
附加:
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
表示解压缩:FileName.gz文件 解压完之后压缩文件会消失