仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 717|回复: 7
打印 上一主题 下一主题

[shell编程] 给大家带来MySQL主动备份到FTP的Shell剧本

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:14:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!之前公司用的一个网上找的MySQL主动备份到FTP的Shell剧本,一向用着不错。可是成绩就是跟着备份文件的愈来愈多,不能不按期清算FTP上的老备份文件,非常的方便。
实践上MySQL备份无需保存太长工夫的,假如能有主动清算旧的备份文件的功效就行了。不外网上找了一下,固然也有这方面的剧本,不外大概不太切合我的需求吧。因而只能本人手动改下之前的谁人Shell剧本来完成咯。
起首我们要断定保存备份的工夫,我以为一个月的备份保存就充足了。由于基础不会呈现1个月后要规复1个月之前备份的情形。(假如有请本人手动备份,究竟主动备份仍是不克不及代替手动备份的局部)。那末我们的思绪就出来了:在上传以当天日期为文件名的备份的时分,特地删除下一个月之前的同日期备份,就能够确保办事器上保存的是比来一个月的备份了。
然后我们必要晓得Linux下的一个下令:date。这是个能够检察以后办事器的工夫日期信息的下令。固然这里我们必要晓得的是这个下令的参数,究竟我们必要失掉的是日期局部。
输出上面这个下令,能够看到“年-月-日”的输出,相似“2011-09-09”:
date+%Y-%m-%d
那末,假如我们要失掉1个月之前的日期怎样办呢?利用上面的这条下令就能够失掉:
date-dlast-month+%Y-%m-%d
怎样?复杂吧。实践备份的时分,由于之前剧本利用的是“m-d-Y”的情势,也就是“月-日-年”的情势,以是我略微做了下调剂。可是上面这个Shell剧本中的是依照“年-月-日”来发生文件名的。
因而,给出全部备份Shell剧本,必要的伴侣只必要填写下有中文申明的局部,便可在本人的Linux办事器上利用。利用举措:复制到某个目次下,然后赐与实行权限,再在cron中设置天天指准时间运转便可。(关于这局部,请自行查找相干申明,这里不再复述)
带主动清算功效的MySQL备份到FTP的Shell剧本以下:
  1. #!/bin/bashMyUSER="db_username"#数据库用户名,倡议利用root账户大概具有全局权限的用户名MyPASS="db_password"#数据库暗码MyHOST="localhost"#数据库办事器#Linuxbinpaths,changethisifitcantbeautodetectedviawhichcommandMYSQL="$(whichmysql)"MYSQLDUMP="$(whichmysqldump)"CHOWN="$(whichchown)"CHMOD="$(whichchmod)"GZIP="$(whichgzip)"#数据库备份的路径DEST="/home/backup"#MaindirectorywherebackupwillbestoredMBD="$DEST/mysql"#GethostnameHOST="$(hostname)"#Getdataindd-mm-yyyyformatNOW="$(date+%d-%m-%Y)"OLD="$(date-dlast-month+%d-%m-%Y)"#FiletostorecurrentbackupfileFILE=""#StorelistofdatabasesDBS=""#DONOTBACKUPthesedatabasesIGGY="test"rm-rf$MBD[!-d$MBD]&&mkdir-p$MBD||:#Onlyrootcanaccessit!$CHOWN0.0-R$DEST$CHMOD0600$DEST#GetalldatabaselistfirstDBS="$($MYSQL-u$MyUSER-h$MyHOST-p$MyPASS-Bseshowdatabases)"cat>ftpcc.sh<<EOFcd$MBDftp-i-n<<!openblog.renhao.org#在这里填写FTP办事器的域名或IPuserftp_userftp_pass#在这里填写FTP用户名和暗码,注重空格分开binarymput*.gzEOFfordbin$DBSdoskipdb=-1if["$IGGY"!=""];thenforiin$IGGYdo["$db"="$i"]&&skipdb=1||:donefiif["$skipdb"="-1"];thenFILE="$MBD/$db.$HOST.$NOW.gz"echo"delete$db.$HOST.$OLD.gz">>ftpcc.sh#doallinonejobinpipe,#connecttomysqlusingmysqldumpforselectmysqldatabase#andpipeitouttogzfileinbackupdir:)$MYSQLDUMP-u$MyUSER-h$MyHOST-p$MyPASS$db|$GZIP-9>$FILEfidonecat>>ftpcc.sh<<EOFclosebye!EOFshftpcc.shrmftpcc.sh
复制代码

如许的Shell剧本运转后,能够失掉每一个MySQL库的自力备份文件,且以gz格局紧缩以便节俭空间。
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
只想知道 该用户已被删除
沙发
发表于 2015-1-15 07:38:59 | 只看该作者

给大家带来MySQL主动备份到FTP的Shell剧本

占坑编辑ing
不帅 该用户已被删除
板凳
发表于 2015-1-30 15:48:16 | 只看该作者
查阅经典工具书和Howto,特别是Howto是全球数以万计的Linux、Unix的经验总结非常有参考价值通常40%的问题同样可以解决。
简单生活 该用户已被删除
地板
发表于 2015-2-6 14:43:51 | 只看该作者
Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。
透明 该用户已被删除
5#
发表于 2015-2-16 20:49:49 | 只看该作者
然我们对Linux的学习首先是通过对它的产生,发展,到今天仍然在不断完善开始的。
深爱那片海 该用户已被删除
6#
发表于 2015-3-5 12:35:19 | 只看该作者
Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。
第二个灵魂 该用户已被删除
7#
发表于 2015-3-12 09:14:25 | 只看该作者
这种补充有助于他人在邮件列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。
柔情似水 该用户已被删除
8#
发表于 2015-3-19 22:56:51 | 只看该作者
一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-12 10:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表