debian vps网站自动备份脚本介绍
发布时间:2022-06-15 06:14:55 所属栏目:教程 来源:互联网
导读:网站自动备份脚本的主要功能就是把网站的数据进行定时备份了,这样可以把数据安全的移到其它盘符或其它远程服务器了,下面一起来看看. debian系统占用内存少,负载均衡,但是如果没有控制面板的话,管理起来就只能通过ssh中使用linux命令来管理,对于不熟悉linux
网站自动备份脚本的主要功能就是把网站的数据进行定时备份了,这样可以把数据安全的移到其它盘符或其它远程服务器了,下面一起来看看. debian系统占用内存少,负载均衡,但是如果没有控制面板的话,管理起来就只能通过ssh中使用linux命令来管理,对于不熟悉linux命令的人来说确实比较麻烦,本篇将详细地分步骤介绍如何在debian系统下,使用linux命令实现定时自动备份网站数据,本文备份方法适用于所有linux系统非必须debian. vps系统环境,系统说明: vps主机内存256MB,硬盘空间 20GB,系统为debian 6 32位,安装的是lnmp,先给一份手动备份网站的列子: cd /home/ mkdir backup cd backup mkdir www mkdir mysql cd /root/ touch backup.sh chmod +x backup.sh vim backup.sh 添加如下内容: cd /home/backup/mysql/ mysqldump -h localhost -u数据库用户名 -p数据库密码 数据库名称| gzip >数据库名称-$(date +%Y%m%d).sql.gz tar zcvf /home/backup/www/phpfensi.com_$(date +%Y%m%d).tar.gz -C /home/wwwroot zxsdw 如上操作后,要手动备份数据只需运行 sh /root/backup.sh 即可,要自动备份可运行:crontab -e 命令添加如下内容:0 2 * * * sh /root/backup.sh linux备份各步骤详细解说: 以phpfensi.com为例:网站安装在/home/wwwroot/phpfensi.com/目录下,备份文件打算放在/home/backup/下,为了使备份信息更清晰,将网站文件备份在在/home/backup/www/下,将mysql数据库备份放在/home/backup/mysql/下. 需要提前做 在/home/下创建backup文件夹,然后在/home/backup/下再创建www和mysql文件夹,使用root登录后,如下操作. cd /home/ mkdir backup cd backup mkdir www mkdir mysql 创建备份脚本:使用root登录vps后,默认目录就是/root/(如果不是,可以用cd /root/切换到root目录下),首先可以在/root/文件下运行如下: touch backup.sh chmod +x backup.sh vim backup.sh 创建一个backup.sh的执行文件,通过chmod设置其可读写,并用vim编辑这个文件,下面就是通过vim编辑backup.sh中要添加的内容,如下. 1.创建数据库备份脚本: cd /home/backup/mysql/ #将mysql的备份放到/home/backup/mysql/下,所以首先cd到这个目录. mysqldump -h localhost -u数据库用户名 -p数据库密码 数据库名称| gzip >数据库名称-$(date +%Y%m%d).sql.gz #这段就是数据库中的各个数据库分开备份并且采用gzip压缩,导出为“数据库名称-年月日.sql.gz”这样的格式。gzip压缩后的sql数据库备份文件更小,恢复数据的时候可以直接导入sql.gz的备份文件来恢复。 2.创建网站文件备份脚本: #绝对路径备份,通俗点说就是点开压缩包先进入home,下面还有wwwroot,就是一级一级打开,最后才是网站的文件夹. tar zPcf /home/backup/www/phpfensi.com_$(date +%Y%m%d).tar.gz /home/wwwroot/phpfensi.com/ #相对路径备份,压缩包只有phpfensi.com这个文件夹及文件夹下面的网站数据. tar zPcf /home/backup/www/phpfensi.com_$(date +%Y%m%d).tar.gz -C /home/wwwroot phpfensi.com #以上为实例,根据你的实际情况修改,此段phpfensi.com的网站文件放在vps的/home/wwwroot/phpfensi.com/下,然后使用tar压缩命令将此文件下的所有文件备份保存到/home/backup/www/文件下,然后保存为“phpfensi.com_年月日.tar.gz”的压缩文件. 3.创建网站日志备份脚本(可选). 网站访问日志一般放在wwwlogs下,个人比较喜欢通过分析网站日志来了解搜索引擎的抓取和搜索情况,所以我想分开备份每天的log网站日志,创建如下脚本: tar zPcf /home/backup/log_$(date +%Y%m%d).tar.gz /home/wwwlogs/ 为了实现将网站日志按日每天分开备份,以便了解每天的网站抓取和收录情况,在备份日志后将原来的日志删除,重新创建一个新的空白日志文件,再添加如下(以www.phpfensi.com为例): rm -rf /home/wwwlogs/*.* cd /home/wwwlogs/ touch www.phpfensi.com.log 添加删除旧的备份脚本,使用vim backup.sh命令然后添加如下: find /home/backup/ -type f -mtime +2 -exec rm -f {} ; find /home/backup/www/ -type f -mtime +2 -exec rm -f {} ; find /home/backup/mysql/ -type f -mtime +2 -exec rm -f {} ; #这段为,分别删除/home/backup/及其下面的子目录www和mysql下的2天前生成的旧的备份文件,将这些内容使用vim编辑添加到backup.sh中后,保存退出,因为backup.sh放置在/root/目录下,所以接下来测试运行: sh /root/backup.sh 运行该命令后,如果没有出现错误提示一般就说明这个备份脚本创建成功了,然后你通过查看/home/backup/及其子目录下是否生成了备份文件可以确定是否备份成功. 设置vps自动定时备份: 要实现自动备份必须使用linux下的cron定时任务工具,以我的vps系统debian6 32系统为例说明,通过命令crontab -e添加如下内容: 0 12 * * * sh /root/backup.sh 说明:我设置每天凌晨3点运行备份脚本,但是通过测试发现,我的香港vps的时间貌似和北京时间有时差,如上,我设置12点对应运行的应该是北京时间凌晨3点. 至此,我的debian vps在lnmp下定时自动备份网站设置成功,实现了每天凌晨3点备份网站文件、数据库数据和网站访问日志,我就可以同过sftp从/home/backup/中下载备份文件了. 好了如果各位还有另一台服务器我们可以使用scp命令来远程备份或使用rsycn同步工具来同步了,下面我们看个scp备份 文件例子. 将本地文件上传到服务器上: scp -P 2222 /home/lnmp0.4.tar.gz root@www.phpfensi.com:/root/lnmp0.4.tar.gz 上端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数. /home/lnmp0.4.tar.gz表示本地上准备上传文件的路径和文件名。root@www.phpfensi.com 表示使用root用户登录远程服务器www.phpfensi.com,:/root/lnmp0.4.tar.gz 表示保存在远程服务器上目录和文件名。 4、将本地目录上传到服务器上 scp -P 2222 -r /home/lnmp0.4/ root@www.phpfensi.com:/root/lnmp0.4/ 上 端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数,-r 参数表示递归复制,即复制该目录下面的文件和目录./home/lnmp0.4/表示准备要上传的目录,root@www.phpfensi.com 表示使用root用户登录远程服务器www.phpfensi.com,:/root/lnmp0.4/ 表示保存在远程服务器上的目录位置. 5、可能有用的几个参数: -v 和大多数 linux 命令中的 -v 意思一样,用来显示进度 . 可以用来查看连接,认证 ,或是配置错误. -C 使能压缩选项. -4 强行使用 IPV4 地址. -6 强行使用 IPV6 地址. (编辑:昌吉站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐