利用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备份集的有效性

Shell变量的作用类型,及如何利用脚本配合任务计划远程备份mysql数据库

利用shell脚本实现对mysql数据库的备份

利用shell脚本实现对mysql数据库的备份

利用shell脚本去备份所指定的数据库

基于XtraBackup的备份有效性检查脚本