当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 17 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?
帖子发表于 : 2013-04-04 17:56 

注册: 2013-04-04 13:16
帖子: 14
系统: ubuntu12.04
送出感谢: 1
接收感谢: 0 次
最近在弄脚本为ubuntu备份,并使用另一个脚本上传至dropbox,并且用cron做定时任务,有三个脚本,详细如下:

1、备份脚本 backup.sh:用来执行特定的备份任务,但这个不是重点。

2、上传脚本 dropbox_uploader.sh(https://github.com/andreafabrizi/Dropbox-Uploader):
已关联dropbox API了,只需按命令格式来就可以对dropbox文件单一处理——上传、下载、删除……。

3、备份上传脚本BackupUpload.sh:
这里写了我一次运行所要对dropbox处理的所有文件,脚本内容如下:
代码:
#!/bin/bash
#Upload
/backup/dropbox_uploader.sh upload /backup/$(date +"%Y.%m.%d.%a").tgz

#Delete backup-file 2-week-ago
/backup/dropbox_uploader.sh delete $(date -d '2 week ago' "+%Y.%m.%d.%a").tgz

如果直接运行脚本“./BackupUpload.sh”是成功的,但是不知道为什么加入cron后虽然有运行记录,但是不成功,即dropbox端没反应。运行记录见附件:

crontab:* * * * * bash /backup/BackupUploda.sh(鉴于试验,设置每分钟运行一次)

求大牛解救啊~~ :em20


附件:
30ab12125382251fa1004a856ac3a2bf.png
30ab12125382251fa1004a856ac3a2bf.png [ 29.87 KiB | 被浏览 5676 次 ]

页首
 用户资料  
 
2 楼 
 文章标题 : Re: ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?
帖子发表于 : 2013-04-04 23:32 
头像

注册: 2009-12-01 13:34
帖子: 78
送出感谢: 2
接收感谢: 5
真奇怪~~~
用set打日志吧


_________________
myshell^_^
xfce4.10最好用了……
舒适的滚轮升起焦点设计,大量快捷键,alt移动,糟糕的桌面图标……
珍爱生命,LFS 三思~


页首
 用户资料  
 
3 楼 
 文章标题 : Re: ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?
帖子发表于 : 2013-04-05 0:37 

注册: 2013-04-04 13:16
帖子: 14
系统: ubuntu12.04
送出感谢: 1
接收感谢: 0 次
needle 写道:
真奇怪~~~
用set打日志吧


可以详细些吗?set好像是设置环境变量的,你是说可能和环境变量有关?

初学者,多多指教 :em06


页首
 用户资料  
 
4 楼 
 文章标题 : Re: ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?
帖子发表于 : 2013-04-05 0:45 
头像

注册: 2009-12-01 13:34
帖子: 78
送出感谢: 2
接收感谢: 5
我不知道set可不可以设置环境变量~
环境变量我一般用export

我只知道set的两个用法:
一个是设置非脚本环境下的命令行参数

一个是启动调试模式:
在脚本内的开头set -x #开启调试模式(把脚本运行过程打印出来)
在脚本内的结尾set +x #关闭调试模式
接着在crontab中把正常输出和错误输出导向文件,可查看脚本运行全过程:
&>~/crontabrun.log


_________________
myshell^_^
xfce4.10最好用了……
舒适的滚轮升起焦点设计,大量快捷键,alt移动,糟糕的桌面图标……
珍爱生命,LFS 三思~


页首
 用户资料  
 
5 楼 
 文章标题 : Re: ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?
帖子发表于 : 2013-04-05 2:19 

注册: 2013-04-04 13:16
帖子: 14
系统: ubuntu12.04
送出感谢: 1
接收感谢: 0 次
needle 写道:
在脚本内的开头set -x #开启调试模式(把脚本运行过程打印出来)
在脚本内的结尾set +x #关闭调试模式
接着在crontab中把正常输出和错误输出导向文件,可查看脚本运行全过程:
&>~/crontabrun.log

嗯,我试过你的方法了,日志信息如下:
附件:
QQ截图20130405021242.png
QQ截图20130405021242.png [ 72.48 KiB | 被浏览 5610 次 ]


大概知道什么原因了,就是第一次我要使用dropbox的上传脚本时,是需要和dropbox账户那边关联API的。我之前是在shell里面进行关联过,所以可以运行成功。但是当用cron的root运行时,从信息得知,它并没关联API,这就头痛了,应该怎样设置才能使cron执行时是关联了dropbox的API呢?


页首
 用户资料  
 
6 楼 
 文章标题 : Re: ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?
帖子发表于 : 2013-04-05 3:32 
头像

注册: 2009-12-01 13:34
帖子: 78
送出感谢: 2
接收感谢: 5
请问这个API要如何关联~
是要用到命令,还是环境变量?


_________________
myshell^_^
xfce4.10最好用了……
舒适的滚轮升起焦点设计,大量快捷键,alt移动,糟糕的桌面图标……
珍爱生命,LFS 三思~


页首
 用户资料  
 
7 楼 
 文章标题 : Re: ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?
帖子发表于 : 2013-04-05 11:10 
头像

注册: 2007-06-13 15:57
帖子: 12650
地址: 在他乡
送出感谢: 54
接收感谢: 90
crontab 中的%要转义


页首
 用户资料  
 
8 楼 
 文章标题 : Re: ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?
帖子发表于 : 2013-04-05 11:53 

注册: 2013-04-04 13:16
帖子: 14
系统: ubuntu12.04
送出感谢: 1
接收感谢: 0 次
needle 写道:
请问这个API要如何关联~
是要用到命令,还是环境变量?

这里是我关联API的一次过程:
附件:
关联dropboxAPI.png
关联dropboxAPI.png [ 89.15 KiB | 被浏览 5544 次 ]


首先需要运行一次上传脚本来激活次过程,然后就根据shell中的提示和dropbox端交叉进行关联,分别需要从dropbox端获取App key、App secret、选择创建app的类型……


页首
 用户资料  
 
9 楼 
 文章标题 : Re: ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?
帖子发表于 : 2013-04-05 11:57 

注册: 2013-04-04 13:16
帖子: 14
系统: ubuntu12.04
送出感谢: 1
接收感谢: 0 次
daf3707 写道:
crontab 中的%要转义

我的crontab中没有%啊,那是我的shell脚本。而且我在shell中调试过,是没问题的...现在我也大致知道原因了,你可以看看我帖子的回复。


页首
 用户资料  
 
10 楼 
 文章标题 : Re: ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?
帖子发表于 : 2013-04-05 13:25 
头像

注册: 2009-12-01 13:34
帖子: 78
送出感谢: 2
接收感谢: 5
脚本运行时,应该不用交互吧~
如果直接运行可以成功,那试试:

代码:
#!/bin/bash
#Upload
su -lc "/backup/dropbox_uploader.sh upload /backup/$(date +"%Y.%m.%d.%a").tgz"

#Delete backup-file 2-week-ago
su -lc "/backup/dropbox_uploader.sh delete $(date -d '2 week ago' "+%Y.%m.%d.%a").tgz"


_________________
myshell^_^
xfce4.10最好用了……
舒适的滚轮升起焦点设计,大量快捷键,alt移动,糟糕的桌面图标……
珍爱生命,LFS 三思~


页首
 用户资料  
 
11 楼 
 文章标题 : Re: ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?
帖子发表于 : 2013-04-05 13:33 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
cron里面,需要设置执行路径。cron可不是shell。
/backup/??你这啥路径哦。


_________________
● 鸣学


页首
 用户资料  
 
12 楼 
 文章标题 : Re: ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?
帖子发表于 : 2013-04-05 15:31 

注册: 2013-04-04 13:16
帖子: 14
系统: ubuntu12.04
送出感谢: 1
接收感谢: 0 次
needle 写道:
代码:
#!/bin/bash
#Upload
su -lc "/backup/dropbox_uploader.sh upload /backup/$(date +"%Y.%m.%d.%a").tgz"

#Delete backup-file 2-week-ago
su -lc "/backup/dropbox_uploader.sh delete $(date -d '2 week ago' "+%Y.%m.%d.%a").tgz"

这个我试了下,确实可以 :em11

虽然不太明白具体怎样发生的,还是要感谢啊~

而且我之后试了试使用“su root”登录超级用户进行API的关联,对于我之前的脚本运行也可以通过,难道和你所讲的命令是一个道理?通过“su -l”登录root然后“su -c”执行后面的命令,再退出?

但好像又说不通啊~既然要用超级用户来关联,那么如果我只是在管理员的情况下关联了,然后再“su -l”登录root,不是还是没关联吗?

有点晕了,对于里面的关系 :em20

我想听听你是怎么分析的?


页首
 用户资料  
 
13 楼 
 文章标题 : Re: ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?
帖子发表于 : 2013-04-05 15:33 

注册: 2013-04-04 13:16
帖子: 14
系统: ubuntu12.04
送出感谢: 1
接收感谢: 0 次
eexpress 写道:
cron里面,需要设置执行路径。cron可不是shell。
/backup/??你这啥路径哦。

我的cron是这样写的
代码:
* * * * * bash /backup/BackupUploda.sh

不过问题现在解决了...还是要感谢你的围观啊~


页首
 用户资料  
 
14 楼 
 文章标题 : Re: ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?
帖子发表于 : 2013-04-05 15:40 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
估计只是表明解决。
设置环境变量,至少要设置SHELL PATH;分清是哪个帐号的cron,谁的cron做谁的事情,不应该指望脚本里面还使用su。


_________________
● 鸣学


页首
 用户资料  
 
15 楼 
 文章标题 : Re: ubuntu使用脚本调用脚本,并用cron做定时任务,为什么执行不了?
帖子发表于 : 2013-04-05 15:54 

注册: 2013-04-04 13:16
帖子: 14
系统: ubuntu12.04
送出感谢: 1
接收感谢: 0 次
eexpress 写道:
估计只是表明解决。
设置环境变量,至少要设置SHELL PATH;分清是哪个帐号的cron,谁的cron做谁的事情,不应该指望脚本里面还使用su。

嗯,确实...我对于一些概念还是挺模糊的,就如“sudo -s”和“su root”的区别,又或者环境变量和它们的执行机理

如果要使脚本里不用su,那就要使用超级用户(su root)关联了...

还在不停的学习、研究中啊 :em06


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 17 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译