上一篇文章种有提到关于linux服务器的一些说明,考虑到linux服务器市场的地位。写一个自动备份网站程序以及数据的工具是非常重要的,要想实现备份网站的功能,所需要使用到的相关工具有zip,crontab,lftp,mysqldump以及shell等。
首先,linux中存在一个比windows的batch功能更加强大的脚本语言,叫做shell。利用shell可以组合式的调用各种不同的linux命令。
好了,下面我介绍一下备份一个网站所需要的步骤。导出数据库,这里 我们要用到的命令是mysqldump
具体命令为mysqldump -u[mysql用户名] -p[mysql密码] [mysql数据库名] > [备份数据的文件名].sql
打包命令,这里我们使用的打包命令是zip,因为zip格式是兼容windows的压缩格式,而且压缩与解压工具都是开源免费的。
具体命令为zip -r [备份文件的文件名].zip [网站根目录] [备份数据的文件名].sql
这样就生成了我们所需要的备份的文件。
然后就是将上一步生成的文件上传到ftp地址用于备份。
这里我们使用linux下的一个命令行ftp客户端lftp,直接敲lftp,然后他就会提示输入ftp地址,以及ftp用户名密码。
lftp的命令中,上传所使用的是put命令。
下面我写一段shell脚本来实现上述功能。
我们假设空间所在文件夹路径为/var/www/html
数据库的用户名为worldflying
密码为123456
数据库名也为worldflying
ftp地址为192.168.56.101
ftp用户名为backup
ftp密码为backup123#!/bin/bash
cd /var/www/
mysqldump -uworldflying -p123456 worldflying > backupmysql.sql
zip -r backupfile.zip backupmysql.sql html
lftp <
open 192.168.56.101
user backup backup123
put backupfile.zip
bye
EOF
写到这里&#xff0c;大家一定会问&#xff0c;这样是不是要每次都手动执行以下这个脚本。哈哈&#xff0c;答案是否定的&#xff0c;linux下有一个计划任务工具叫做crontab。
使用方式是执行crontab -e&#xff0c;然后将需要执行的命令与执行时间设置在这里&#xff0c;保存&#xff0c;最后重启cron服务即可。