免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4065 | 回复: 11

[其他] 一个简单的备份脚本命令错误 [复制链接]

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
发表于 2014-04-20 19:17 |显示全部楼层
备份的脚本命令如下:
filename = `date`
zip -r  /home/bak/mysql/{$filename}.zip /var/lib/mysql/testdb

在/home/bak/mysql查看备份的文件,结果是一个这样的文件:ziGT4SEy  

正常执行:zip -r /home/bak/mysql/testdb.zip /var/lib/mysql/testdb 是可以正常备份的。但是以日期命名的zip 就乱套了。不知道为什么会这样!

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
发表于 2014-04-20 19:53 |显示全部楼层
try:
  1. filename=`date +%Y%m%d`
  2. zip -r  /home/bak/mysql/${filename}.zip /var/lib/mysql/testdb
复制代码

论坛徽章:
0
发表于 2014-04-20 21:42 |显示全部楼层
回复 1# fengyun530

    filename=`date`==>`date +%Y%m%d`规定返回格式
    {$filename} =>${filename}

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
发表于 2014-04-20 22:02 |显示全部楼层
用了2楼的代码,但是问题还是一样的,这次备份的文件编程了这个文件名:zix33oFN

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
发表于 2014-04-20 22:02 |显示全部楼层
就是这个代码:

filename=`date +%Y%m%d`
zip -r  /home/bak/mysql/${filename}.zip /var/lib/mysql/testdb

论坛徽章:
2
白羊座
日期:2013-11-18 19:52:42辰龙
日期:2014-09-07 07:46:06
发表于 2014-04-21 13:16 |显示全部楼层
可能是压缩时文件大小或内容改变,zip出错退出,建议加上一句确认zip运行成功与否。如果exit code非零,根据值找出原因。
  1. filename=`date +%Y%m%d`
  2. zip -r  /home/bak/mysql/${filename}.zip /var/lib/mysql/testdb 2>&1 >/home/bak/mysql/${filename}.log
  3. echo "exit code of zip:$?">>/home/bak/mysql/${filename}.log
复制代码

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
发表于 2014-04-21 17:34 |显示全部楼层
回复 6# damcool

谢谢,按照你提供的代码脚本重写了一个,这次在文件夹下连怪异的字母文件都不产生了。看起来就像什么也没执行过的样子。 在/home/bak/mysql/下没有任何文件产生!

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
发表于 2014-04-21 18:54 |显示全部楼层
回复 7# fengyun530


    把脚本的执行过程贴一下 bash -x  xx.sh
或者直接在命令行下面执行看一下是不是还有问题出现

论坛徽章:
2
白羊座
日期:2013-11-18 19:52:42辰龙
日期:2014-09-07 07:46:06
发表于 2014-04-22 09:22 |显示全部楼层
本帖最后由 damcool 于 2014-04-22 09:28 编辑
fengyun530 发表于 2014-04-21 17:34
回复 6# damcool

谢谢,按照你提供的代码脚本重写了一个,这次在文件夹下连怪异的字母文件都不产生了。 ...


那我觉得只有一种可能,你的脚本没有被执行,否则不可能没有文件生成.另外代码前要加一行,应该会知道吧.

  1. #!/bin/bash
  2. filename=`date +%Y%m%d`
  3. zip -r  /home/bak/mysql/${filename}.zip /var/lib/mysql/testdb 2>&1 >/home/bak/mysql/${filename}.log
  4. echo "exit code of zip:$?">>/home/bak/mysql/${filename}.log
复制代码

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
发表于 2014-04-23 19:25 |显示全部楼层
回复 8# 关阴月飞
谢谢回复,按照你说的:bash -x baksh.sh 直接执行备份脚本结果很正常!名称也不会一次,就跟手动操作时一样的。如下图:
333.jpg
但是放到计划任务crontab自动执行,就变成了里就乱套了。备份名称变成了怪异的名称,不知道为什么。
执行crontab -l的结果:
24 19 * * * /home/baksh/baksh.sh
每日19点24分。不知道这个也会错误码?


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP