shell脚本:mysqlbak.sh
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export PATH
#备份的路径
backupdir='/root/database_backup/ywapp2'
#备份的时间
time=`date +%Y%m%d_%H%M%S_%N`
#判断前一天是否备份 有则清空备份 无则直接备份
#为了不占内存 备份过程中压缩文件
files=`ls $backupdir`
if [ -z "$files" ]; then
mysqldump --opt -uroot -p'Nxy123yang' ywapp | gzip > $backupdir/ywapp_$time.sql.gz
else
#清空备份的文件
find $backupdir -name "*.gz" -type f -exec rm -rf {} \; > /dev/null 2>&1
mysqldump --opt -uroot -p'Nxy123yang' ywapp | gzip > $backupdir/ywapp_$time.sql.gz
fi
------------------------
备份好的文件格式:ywapp_20170424_203702_130408343.sql.gz
借鉴:http://www.jb51.net/article/56553.htm 中if 写法
http://www.cnblogs.com/platero/p/4021561.html 中判断文件和文件夹是否存在
-----------------------------------
myFolder=
/home/test
files=`
ls
$myFolder`
if
[ -z
"$files"
];
then
echo
"Folder $myFolder is empty!"
else
echo
"Folder $myFolder is not empty."
fi
http://blog.sina.com.cn/s/blog_439f80c40101fx5t.html
http://bbs.chinaunix.net/thread-4145980-1-1.html
可以参考另一种写法:
http://www.centoscn.com/shell/2014/0821/3529.html
七天清空一次备份数据
find $backupdir-name "*.tar.bz2" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1
这篇文章可以 备份多个数据库 并压缩发送送到自己的邮箱。
http://blog.csdn.net/painsonline/article/details/7717551
这篇文章也不错
http://www.centoscn.com/mysql/2016/0206/6737.html