shell编程实战之网站文件及数据库文件的备份-linux运维
发布时间:10/01 来源:未知 浏览:
关键词:
今天和大家来讲下怎样在办事器端编写备份网站名目及数据库文件的足本。第一需要先增补几个见识:
tar下令,文件的紧缩打包
find下令,查寻文件
bzip2,文件紧缩
为了节俭空间,我们时常会对名目文件做紧缩并打包的操纵。bzip2下令可以对文件进行紧缩,但它不克不及对名目进行紧缩,对名目则可以运用tar下令紧缩打包。
由于数据库文件就是一个独自的sql文件,所以可以运用bzip2下令对其紧缩。
mysqldump -u会员名 -p密码 --all-databases | bzip2 > 备份名目/文件名
而网站文件则需要运用tar下令来进行紧缩。
tar -jcpf 备份名目/文件名 需备份的名目
虽然我们天天都会进行备份,但是我们只想保留比来七天的备份记载,7天前的备份数据主动删除。这里我们就需要运用find下令来寻出7天前的备份文件,然后将其删除。
find 备份名目 -mtime +7 -type f -exec rm -f {} \;
下面开端正式编写shell足本。第一,我们需要定义备份名目,要是备份名目不存在,则需要先新建名目。
WWW_DIR=/home/wwwroot BAK_DIR=/root/bak if [ ! -d $BAK_DIR ];then mkdir $BAK_DIR fi
接下来 ,就是进行网站名目以及数据库文件的备份了
tar -jcpf $BAK_DIR/www_$(date +%Y%m%d).tar.bz2 $WWW_DIR 2>/dev/null mysqldump -uroot -p123456 --all-databases | bzip2 > $BAK_DIR/all_database_$(date +%Y%m%d).sql
最后,只有删除七天前的备份数据即可
find $BAK_DIR -type f -mtime +7 -exec rm -f {} \;
下面贴出完备代码:
#!/bin/bash # 备份数据库文件及网站文件 WWW_DIR=/home/wwwroot BAK_DIR=/root/bak if [ ! -d $BAK_DIR ];then mkdir $BAK_DIR fi # 备份网站文件及数据库文件 tar -jcpf $BAK_DIR/www_$(date +%Y%m%d).tar.bz2 $WWW_DIR 2>/dev/null mysqldump -uroot -pGuiyuan#520@1314 --all-databases | bzip2 > $BAK_DIR/all_database_$(date +%Y%m%d).sql # 删除7天前的备份数据 find $BAK_DIR -type f -mtime +7 -exec rm -f {} \;
最后,还是但愿大家能养成备份的习惯。除了办事器上的每日备份,别的还是倡议一个星期,从办事器上拷贝一份数据到当地磁盘,保障数据安若泰山。
以上就是shell编程实战之网站文件及数据库文件的备份的细致内容,更多请关注 百分百源码网 其它相干文章!