免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3127 | 回复: 10
打印 上一主题 下一主题

shell备份脚本,求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-06 09:58 |只看该作者 |倒序浏览
#!/bin/bash
cp -a /usr/local/apache2 /root/web
cd /root
tar zcvf - web >web.tar.gz
rm -rf web

我想在这个脚本的基础上实现每周完全备份一次,每天增量备份,自动删除10天以前的备份,备份文件用日期加文件类型命名。网站数据库有 6G,mysql数据有 3G,本想用 tar打包,但是很占cpu。哪位帮写个脚本。谢谢了。本地备份。

[ 本帖最后由 liang3391 于 2009-7-6 10:01 编辑 ]

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
2 [报告]
发表于 2009-07-06 10:08 |只看该作者

回复 #1 liang3391 的帖子

用备份工具不行?

论坛徽章:
0
3 [报告]
发表于 2009-07-06 10:09 |只看该作者
网站用什么工具备份? mysql 用mysqldump好像很慢,而且会影响mysql的运行。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
4 [报告]
发表于 2009-07-06 10:12 |只看该作者

回复 #3 liang3391 的帖子

mysql有热备份,参考mysql资料。到mysql版去问。

论坛徽章:
0
5 [报告]
发表于 2009-07-06 10:24 |只看该作者
那我网站数据改如何用shell脚本去实现呢?

论坛徽章:
0
6 [报告]
发表于 2009-07-06 10:51 |只看该作者
给个框架
  1. #!/bin/bash
  2. day=`date +%Y%m%d`
  3. day1=`date -d "1 day ago" +%Y%m%d`
  4. DataDir=/root
  5. cd $DataDir
  6. if [ `date +%w` -eq 0 ];then
  7.   tar czvf web$day.tar.gz /usr/local/apache2
  8. else
  9.   \cp -f web$day1.tar.gz web$day.tar.gz
  10.   tar uvf web$day.tar.gz /usr/local/apache2
  11. fi
  12. find . -name "web*.tar.gz" -mtime 10 -exec rm -f {} \;
  13. exit 0
复制代码

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
7 [报告]
发表于 2009-07-06 10:52 |只看该作者
试试ftp工具。

论坛徽章:
0
8 [报告]
发表于 2009-07-06 11:02 |只看该作者
用veritas

论坛徽章:
0
9 [报告]
发表于 2009-07-06 11:11 |只看该作者
搞的有点复杂了吧。我就这么一台机器,只是将网站和mysql的数据 cp 到另外一个目录再进行 tar。


楼上兄的 :

#!/bin/bash
day=`date +%Y%m%d`
day1=`date -d "1 day ago" +%Y%m%d`
DataDir=/root
cd $DataDir
if [ `date +%w` -eq 0 ];then
  tar czvf web$day.tar.gz /usr/local/apache2
else
  \cp -f web$day1.tar.gz web$day.tar.gz
  tar uvf web$day.tar.gz /usr/local/apache2
fi
find . -name "web*.tar.gz" -mtime 10 -exec rm -f {} \;
exit 0


这个脚本不错。命名方式,增量都实现了,不知道完全备份能不能实现。但是还没能实现自动删除7天以前的备份。

[ 本帖最后由 liang3391 于 2009-7-6 11:24 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2009-07-06 11:35 |只看该作者

回复 #9 liang3391 的帖子

不是删除10天前的文件吗?find语句里已经实现了
全量备份就是if语句第一个分支里的语句,星期天进行全量备份
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP