linux备份脚本(以web为例)

linux服务器中要定期对某一块东西自动备份很有必要,这时就要用到shell脚本来写啦。这里以备份Apache服务器为例,为了方便演练,这里用的Apache是用yun安装的,如果想对源码安装的Apache做自动备份,只需改动相应代码即可。

[[email protected] ~]# vi bak_web1.sh

#!/bin/bash

#name:bak_web.sh

#description:this is used to back up web script

mypath="/var/bak_web"  ///将备份出来的东西放在指定目录下,这个目录可以是smb分享出来的,也可以是建立在lvm上的

mylog="/var/log/weblog.txt"   ///将每次备份做一次记录,将每次记录都集中保存在这个指定的文件下(也就是日志),这里的日志目录以及备份目录都是自己根据实际指定的。

time=`date +%Y-%m-%d-%H:%M`    ///定义每次执行备份要用到的时间变量

if [ ! -d "$mypath" ];then     ///判断备份目录是否存在,如果不存在就创建这个目录

mkdir "$mypath"

fi

mkdir -p $mypath/$time/conf   ///分别创建相应要备份的内容的目录,为的是便于管理

mkdir -p $mypath/$time/web

cd /etc/httpd/conf/

tar zcf $mypath/$time/conf/httpd.conf.tar.gz ./httpd.conf  ///将Apache的配置文件打包压缩,取名为httpd.conf.tar.gz,放在$mypath/$time/conf目录下

ret=$?

if [ $ret -eq 0 ];then   ///判断上面的打包压缩动作是否做成功了,如果做成功了,就追加写一条“成功”的记录,否则写一条“失败”的记录

echo "At $time tar htpd.conf.tar.gz successed" >> $mylog

else

echo "At $time tar httpd.conf.tar.gz failed" >> $mylog

fi

cd /var/www/

tar zcf $mypath/$time/web/html.tar.gz ./html   ///将Apache的根目录下的各文件打包压缩,取名为html.tar.gz,放在$mypath/$time/web目录下,类似的还可以备份数据库db的

ret=$?

if [ $ret -eq 0 ];then   ///判断上面的对Apache根目录打包压缩是否做成功了,如果做成功了就追加一条“成功”记录到$mylog,否则写一条“失败”记录

echo "At $time tar html.tar.gz successed" >> $mylog

else

echo "At $time tar html.tar.gz failed" >> $mylog

fi

脚本到这里完成,用bash bak_web1.sh执行以下,发现在/var/bak_web/下生成了新的内容,同时在/var/log/weblog.txt日志文件中会有新的记录。

将该脚本添加到crontab下,让其每隔一定时间自动执行一次。我这里设置的是每隔1分钟执行一次,脚本放在/root/目录下,脚本没执行一次,/var/bak_web/目录下以及/var/log/weblog.txt日志文件中都会有新的内容增加。

[[email protected] ~]# crontab -e

*/1 * * * * bash /root/bak_web1.sh

用tail -f /var/log/weblog.txt可以试试查看日志变化

结果表明此脚本可以按时健康有效的运行。

时间: 2024-08-08 05:38:23

linux备份脚本(以web为例)的相关文章

mysql linux 备份脚本

#!/bin/sh # mysql data backup script # # use mysqldump --help,get more detail. # BakDir=/root/back/mysql LogFile=/root/back/mysql/mysqlbak.log DATE=`date +%Y%m%d%H%M%S` echo " " >> $LogFile echo " " >> $LogFile echo "-

linux 自动备份脚本

首先我在/root/backup 目录下建立一个文件夹, #mkdir /root/backup/mysqlbackup 以后在每天五点钟,就会有一个文件保存在这里. 接着新建文件 #vim /root/mysqlautobak 输入: filename=` date +%Y%m%d ` mysqldump --all-databases -uroot -p(mysql密码)> /root/backup/mysqlbackup/mysql$file.sql 保存退出! 让它可以执行 #chomd

LINUX 自动备份脚本文件

首先我在/root/backup 目录下建立一个文件夹, #mkdir /root/backup/mysqlbackup 以后在每天五点钟,就会有一个文件保存在这里. 接着新建文件 #vim /root/mysqlautobak 输入: filename=` date +%Y%m%d ` mysqldump --all-databases -uroot -p(mysql密码)> /root/backup/mysqlbackup/mysql$file.sql 保存退出! 让它可以执行 #chomd

Linux Shell脚本之Gitlab远程备份

注:Gitlab是一个git服务程序,有web图形界面和一系列管理工具,具体详细介绍可以Google it. 这一篇可以说是上一篇<Linux Shell脚本之Atlassian confluence远程备份方法>的姊妹篇.其说明和原理是和上一篇是一样的,其核心原理都是core dump.scp.ssh和find+rm,但也有不同. 1.Gitlab本身提供了较好的备份方法,只是一个命令那么简单,并且它也支持远程备份(远程存储和云存储),例如它可以存储到aws的s3上. 2.本脚本运行在Git

WEB页面,WEB环境版本,数据库,整站备份脚本

#!/bin/bash # #WEB页面,WEB环境版本,数据库,整站备份脚本 #当发生某个原因导致整个服务器无法恢复时,利用上面备份的相关数据即可重做一台一样的服务器 date_a=`date +%Y%m%d-%H%M%S` mkdir -p /web_bak/${date_a}/conf &> /dev/null mkdir -p /web_bak/${date_a}/web &> /dev/null mkdir -p /web_bak/${date_a}/mysql &a

Linux 通过脚本实现远程数据的自动备份

在数据化飞速发展的今天,数据的定期备份成了数据安全首要考虑的问题.一旦出现了问题或故障,导致数据无法正常读取,那么原有的重要数据又如何得以保存下来呢.当然不能采用本机备份了,这样的备份风险很大,极有可能鸡飞蛋打,如果机器都宕掉了,本机备份的数据也就没法利用啦.因此,采取远程服务器作为备份机(远程数据备份)就变的很重要了. 远程手动备份费时费力而且还不及时,最好的办法就是通过脚本实现远程自动备份.但远程备份无论是通常通过SSH方法登陆到业务服务器(数据服务器),通过scp拷贝文件时都说需要不断输入

万能脚本助Web执行底层Linux命令

需求分析: 这里先要说明的是,这一篇不是QT系列的文章,而是关于Web的,之所以要写这篇,是因为以前做Web相关开发的时候,经常涉及到与linux底层命令打交道,比如说创建一个目录,删除一个目录,或者是执行一个自定义的脚本.关于PHP如何调用.执行Linux的底层命令,以前也研究过,基本上实现了自己需要的功能,但是有些地方一直没有弄明白.今天又偶然碰到了,趁着这个机会向大家描述一下一步一步应该如何实现,并最后附上相关C代码. 原理实现: 首先,一般搭建的Web站点都是采用Apache或Nginx

Linux自动备份脚本

今天网上一个朋友问了我一个shell的题目,让我帮他做下.下面是题目以及解题思路. 题目: 写作一个备份/etc目录的脚本,要求:将/etc目录下的所有文件cp到/var/backups目录下的以当天的日期命名的目录中例如(/var/backups/etc.20140809).并且判断前一天的目录中的文件与当天的区别,如果无区别,则删除前一天的备份目录. 解答: [[email protected] scripts]# cat auto_bak.sh  #!/bin/bash # # This 

linux服务器本地和百度云备份脚本小试

本地单文件上传脚本,命名uf 这是在本机上做的测试,利用bpcs_uploader脚本实现,只是进行简单的封装,自动完善云端文件路径. 技术要点:使用dirname获取文件所在目录,使用pwd获取文件完整路径,并作为云端文件路径. #!/bin/bash cur_dir=$(cd "$(dirname "$1")"; pwd) name=$(basename "$1") /home/grm/bin/bpcs_uploader/bpcs_uploa