linux中打包备份脚本,手动执行可以正常打包,使用crontab -e 添加到系统定时任务中执行就无法打包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中打包备份脚本,手动执行可以正常打包,使用crontab -e 添加到系统定时任务中执行就无法打包相关的知识,希望对你有一定的参考价值。

参考技术A 打包备份时,dmp和log文件还没生成
你可以将crontab命令执行结果重定向一下就看出来了:
0
2
*
*
*
/home/tomc/backup/ommb/backup.sh
>
/tmp/backup.log
2>&1
参考技术B 自动执行之前应该已经手动一遍了,已经将dmp和log
remove掉了,然后自动时候找不到这两个文件

Mysql定时备份数据脚本

项目3.0的集群以搭建完成,只剩下细节相关的配置,和后期安全和优化的处理,考虑到数据库数据需要备份处理,

但每天手动进行备份处理太过于被动,而且白天用户访问,会有数据变化以及在备份时会影响服务器正常运行的性能,

所以考虑写一个脚本,并制定一个定时任务进行执行脚本备份数据;

#!/bin/bash
###数据库定时备份,并将备份的库进行打包压缩
user=root
passwd=123456
back_path=/vdb1/mysql/backup
data_name=zmq123
date=`date +%Y%m%d`

mkdir $back_path/$date
mysqldump -u $user -p$passwd $data_name |gzip > $back_path/$date/$data_name.sql.gz

#定时任务,计划在每天晚上23点55分进行数据备份
55 23   *  *  * . /vdb1/mysql/mysqldump.sh

当运行了一段时间后,发现备份的数据有些占磁盘空间的,而我要保存的只是最近一月的数据就可以了,所以将这个脚本进行升级,

在可能没有人注意的情况下,而磁盘不会被备份数据占满;

###升级版每天晚上11:55分进行定时备份,
#!/bin/bash
year=`date +%Y`
month=`date +%m`
day=`date +%d`
backpath=/vdb1/mysql/backup/$year$month/
user=root
passwd=123456
dataname=zmq123

[ -d $backpath ] || mkdir -p $backpath
rq=`date +%Y%m%d`
mysqldump -u $user -p$passwd $dataname|gzip >$backpath/$rq.sql.gz

#定时任务
分 时   日 月 周
55 23   *  *  * . /vdb1/mysql/mysqldump.sh

########每月2号晚上11:30进行定时删除上个月备份数据
#!/bin/bash
year=`date +%Y`
month=`date +%m`
month=`expr $month - 1`
 if [ $month -eq 0 ];then
    month=12
    day=31
    year=`expr $year - 1`
 fi

 if [ $month -lt 10 ];then
    pre=0
 fi

backdir=/vdb1/mysql/backup/$year$pre$month
rm -rf $backdir                    #删除上一个月的数据
##定时任务
30 23  2 * * . /vdb1/mysql/delmysqlbak.sh

OK!编写完成,先运行段时间看下吧!有情况再进行改进;















































以上是关于linux中打包备份脚本,手动执行可以正常打包,使用crontab -e 添加到系统定时任务中执行就无法打包的主要内容,如果未能解决你的问题,请参考以下文章

Mysql定时备份数据脚本

linux脚本定期对日期命名的文件夹打包,Vbs压缩备份文件夹以日期命名

用脚本实现linux2个月前的会话日志打包备份到指定文件夹并删除

Centos 备份常用命令

CMake - 如何在打包期间阻止执行安装脚本?

linux下tar打包的压缩率问题