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