linux自动定时备份web程序和mysql数据库
前些天受朋友说linux定时备份不知道怎么搞,叫帮忙处理一下。由于这段时间正闲着,所以也就欣然答应。由于朋友对linux不懂也希望我将操作的过程记录下来,也就是越详细越好。所以写得比较$%^&*。本以为半个小时或者一个小时可以搞好,谁不知整整搞了一天。原因在哪呢?这里也顺便吐槽一下,首先问web存放在什么地方?不知,给了个ftp。然后进去一看,各种压缩包,各种目录备份,混乱不堪,为了防止磁盘被撑爆,所以一个个目录确认,哪些目录是要的哪些是不要的,然后一个个删掉。还有mysql数据库,问用的哪个?不知,又是一通的等,一遍遍地确认。好吧,这也都算了。等我搞好了,然后说每天检查一下。谁不知,程序猿最怕发生的事情义无意外地发生了。目录搞错,这不等于万恶的改需求吗?脑子瞬间都是各种@!#$%^&*(!@#$%^^&*()。好吧,不接都已经接了认了吧。好了吐槽至此,不废话入正题。
需求:
1、每天定时备份web程序和mysql数据库
2、web程序、web日志和mysql数据库备份均保留7天
说明:
web目录:/chinasofti/www/bbswebdir
web日志目录:/chinasofti/www/bbswebdir/httplogs
日志文件名格式:myweb.com-access_log_YYYYMMDD,myweb.com-error_log_YYYYMMDD,如myweb.com-access_log_20150508,myweb.com-error_log_20150508
备份脚本存放目录:/chinasofti/wwwbakscript/
备份文件存放目录:/chinasofti/wwwbakdir/
web备份文件名格式:bbs.myweb.com_YYYYMMDD,如bbs.myweb.com_20150508.tar.gz
mysql备份文件格式:数据库名_$(date +%Y%m%d).sql.gz
写在前面:务必注意各个目录的说明,运用是注意修改。完全不改是用不了的。注意各个目录和文件的对应关系。
淡绿色底的为linux命令,淡黄色底的为shell脚本内容,其他的为备注说明。
操作步骤
root用户登陆后
1、切换目录
cd /chinasofti/wwwbakscript
2、创建备份脚本
vi mywebbak.sh
按i然后输入以下内容
#!/bin/bash
#backup /chinasofti/www/bbswebdir and database
###################切换到web目录#################
cd /chinasofti/www/bbswebdir
###################删除web日志#################
rm -f ./httplogs/myweb.com-access_log_$(date +%Y%m%d --date='7 days ago')
rm -f ./httplogs/myweb.com-error_log_$(date +%Y%m%d --date='7 days ago')
###################删除备份文件#################
rm -f /chinasofti/wwwbakdir/bbs.myweb.com_$(date +%Y%m%d --date='7 days ago').tar.gz
###################备份web程序#################
tar -zcf /chinasofti/wwwbakdir/bbs.myweb.com_$(date +%Y%m%d).tar.gz ./* ./.[!.]*
###################删除备份数据库####################
rm -f /chinasofti/wwwbakdir/数据库名_$(date +%Y%m%d --date='7 days ago').sql.gz
###################备份数据库####################
mysqldump -u数据库账号 -p"数据库密码" 数据库 | gzip >/chinasofti/wwwbakdir/数据库名_$(date +%Y%m%d).sql.gz
#################导出单个表数据和结构############
#mysqldump -u账号 -p 数据库名 表名 > /root/XXXX.sql
添加完成后,按键盘右上角的“esc”键,然后输入英文的冒号加x(:x),回车完成。
注意:红色字体部分为路径(注意修改),品红色部分为文件名(注意修改)。
4、添加可执行权限
chmod +x mywebbak.sh
5、定时执行
crontab -e
按i编辑,添加运行的脚本和时间。如:
0 1 * * * /chinasofti/wwwbakscript/mywebbak.sh
则为每天凌晨1点执行,/chinasofti/wwwbakscript/mywebbak.sh这个shell脚本。
修改完成后,按键盘右上角的“esc”键,然后输入英文的冒号加x(:x),回车完成。
6、每天检查脚本是否正常运行。
其它相关文章:
linux自动定时备份web程序和mysql数据库的更多相关文章
- Linux VPS自动定时备份网站文件和MYSQL数据库到FTP空间(LNMP)
如果我们网站更新不是很频繁,我们可以定期手动进行备份网站文件和MYSQL数据库导出.如果我们网站数据更新频繁,且数据尤为重要,建议要采用定期自动 备份,至少需要多备份数据,无论我们选择何种优秀的VPS ...
- 黄聪:VPS实现自动定时备份网站数据以及Mysql数据库到百度云同步盘
建站多了,备份成了头疼的问题,因为你不知道你的VPS什么时候会宕机或者服务商跑路,一旦网站数据丢失,那么相当于前功尽弃了,所以自己研究出了一套自动备份的方法. 需要的东西: 1.一个VPS(虚拟空间没 ...
- Crontab定时备份网站脚本及mysql数据库
1)shell脚本 #!/bin/bash #你要修改的地方从这里开始 MYSQL_USER="root" #mysql用户名 MYSQL_PASS="123456&qu ...
- centos使用shell脚本定时备份docker中的mysql数据库
shell脚本 #!/bin/bash #容器ID container_id="6b1faea2b4d7" #登录用户名 mysql_user="root" # ...
- [转]mysql自动定时备份数据库的最佳方法-支持windows系统
网上有很多关于window下Mysql自动备份的方法,可是真的能用的也没有几个,有些说的还非常的复杂,难以操作. 我们都知道mssql本身就自带了计划任务可以用来自动备份,可是mysql咱们要怎么样自 ...
- windows系统——mysql自动定时备份数据库的最佳方法
网上有很多关于window下Mysql自动备份的方法,可是真的能用的也没有几个,有些说的还非常的复杂,难以操作. 我们都知道mssql本身就自带了计划任务可以用来自动备份,可是mysql咱们要怎么样自 ...
- Linux下定时备份MySQL数据库的Shell脚本
Linux下定时备份MySQL数据库的Shell脚本 对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间 ...
- Mysql数据库自动定时备份软件推荐--MySqlBackupFTP(免费,亲测可用,附使用图示)
MySqlBackupFTP是一款Mysql数据库自动定时备份软件,免费版本就基本上可以满足我们的需求,不需要什么破解版,可直接官网下载安装使用. 先看结果(日志): 软件界面: 可以设定计划任务,每 ...
- SQL2008实现数据库自动定时备份——维护计划
在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员 每天守到晚上1点去备份数据库.要实现数据库的 ...
随机推荐
- C# ManualResetEvent和AutoResetEvent 使用笔记
一.两者区别 1.ManualResetEvent 调用一次Set()后将允许恢复所有被阻塞线程.需手动在调用WaitOne()之后调用Reset()重置信号量状态为非终止,然后再次调用WaitOne ...
- Main函数 & Autoreleasepool
如同任何基于C的应用程序,程序启动的主入口点为iOS应用程序的main函数.在iOS应用程序,main函数的作用是很少的.它的主要工作是控制UIKit framework.因此,你在Xcode中创建任 ...
- linux下生成core dump文件方法及设置
linux下生成core dump文件方法及设置 from:http://www.cppblog.com/kongque/archive/2011/03/07/141262.html core ...
- jquery 选择器 -高级使用 新的 心得
jQuery的each函数: each函数等同于c语言中的for函数: 里面每次循环的 "context 上下文" == 当前的dom ,可以使用this, 也可以使用$(this ...
- oracle中的nvl(), nvl2()函数
nvl()函数是oracle/plpgsql中的一个函数,格式为:nvl(string1, replace_with) 功能:如果string1 位null,那么nvl()函数返回replace_wi ...
- 2015年11月25 Java基础系列(二)Thread Runnable线程初级讲解
序,线程是比进程小的进程,非常广泛的被使用. 一.继承Thread实现线程操作 1.注意setDaemon(boolean)方法,参数为true时为守护线程,参数为false时为用户线程. 守护线程的 ...
- XMAL语法系列之-(2)---WPF控件继承图
WPF控件继承图 1 FrameworkElement 1.1 Panel(面板类元素) 1.1.1 Canvas 1.1.2 DockPanel 1.1.3 Grid 1.1.4 TabPanel ...
- poj3335 半交平面,多边形内核
Rotating Scoreboard Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5300 Accepted: 21 ...
- SpringMVC的Controller方法的参数不能直接绑定List、Set、Map
List需要绑定在对象上,而不能直接写在Controller方法的参数中. http://www.iteye.com/topic/973918
- Swift2.1 语法指南——扩展
原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi ...