利用shell脚本进行代码备份和数据库备份
Posted queqp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用shell脚本进行代码备份和数据库备份相关的知识,希望对你有一定的参考价值。
1、实际并不是进行代码备份,而是对上传的附件备份, 毕竟代码在我这边主要是通过svn管控的,不需要进行备份了,但是为了偷懒,还是将整个文件夹直接打包了。
name="your code file name" #你代码文件夹的名称
# the directory for story your backup file.you shall change this dir
backup_dir="/data/codebak/$name" #备份路径,看个人喜好,自己命名
# date format for backup file (dd-mm-yyyy)
time="$(date +"%Y%m%d%H%M%S")" #毕竟要每天备份,所以我加时间戳辨识
cd /home/wwwroot/default #打开代码所在的目录,这是我的,如果要用这个脚本,请修改
tar -zcf $backup_dir"/"$name"_"$time.tar.gz sccl_demo #打包备份
find /data/codebak/$name/ -mtime +30 -name "*.tar.gz" -exec rm -rf {} \; #硬盘空间有限,只保留30天的数据,超过30天的,需要清理掉
2、对mysql进行数据备份
db_user="root" #数据库用户名
db_passwd="root" #数据库密码
db_name="test" #数据库名称
# the directory for story your backup file.you shall change this dir
backup_dir="/data/mysqlbak/$da_name"
# date format for backup file (dd-mm-yyyy)
time="$(date +"%Y%m%d%H%M%S")"
#在这边要注意一下,执行mysqldump的时候,一定要加上完整的路径,一般这种备份文件的脚本都是放在crontab中,定时执行的。而你如果直接使用mysqldump,不加上完整的路径的话,会出现crontab的定时任务不能自动执行,但是手动执行脚本一直能成功,这就涉及到crontab的环境变量问题了,有兴趣进一步了解的的话,传送门在此,http://blog.csdn.net/dancen/article/details/24355287
/usr/local/mysql/bin/mysqldump -u$db_user -p$db_passwd $db_name > "$backup_dir/$db_name"_"$time.sql"
find /data/mysqlbak/$db_name/ -mtime +180 -name "*.sql" -exec rm -rf {} \; #保留几天自己定
以上是关于利用shell脚本进行代码备份和数据库备份的主要内容,如果未能解决你的问题,请参考以下文章
利用SHELL脚本来验证Oracle数据库RMAN备份集的有效性