楼主: dankdark
3730 8

[原创博文] 请教高人如何在UNIX在怎么写个script来实现设定时间自动运行程序 [推广有奖]

  • 0关注
  • 1粉丝

已卖:180份资源

硕士生

13%

还不是VIP/贵宾

-

威望
0
论坛币
183 个
通用积分
10.3516
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
1883 点
帖子
110
精华
0
在线时间
135 小时
注册时间
2005-6-23
最后登录
2024-3-30

楼主
dankdark 发表于 2010-5-19 12:38:18 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请教高人如何在UNIX在怎么写个script来实现设定。或者推荐本书看看关于这方面的。 谢谢了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:script scrip 自动运行 运行程序 请教高人 运行程序 如何

回帖推荐

nkwilling 发表于3楼  查看完整内容

第一步:产生一个txt文件,内容如下: 30 19 * * * bash /.../bashfilename.bsh 这是一个crontab命令,请自己查这个命令的含义. 第二步:产生bashfilename.bsh文件,文件内容如下: LOG="这里是日志路径" 这里是UNIX登陆SAS系统的调用命令 -sysin '这里是调用SAS程序' -log '这里是日志路径' 第三步:调用txt文件 crontab 这里是你第一步产生的txt文件路径

本帖被以下文库推荐

沙发
liuxin9023 发表于 2010-5-19 12:41:34
如果写病毒的话 基本不用考虑 没有权限 什么都运行不了的
如果不是病毒的话 那是比较简单的 写一个后台进行(damon process) 比较系统时钟 如果满足条件 直接执行就可以(比如用open或者run或者cmd之类的)

藤椅
nkwilling 发表于 2010-5-19 13:46:04
第一步:产生一个txt文件,内容如下:
30 19 * * * bash /.../bashfilename.bsh
这是一个crontab命令,请自己查这个命令的含义.
第二步:产生bashfilename.bsh文件,文件内容如下:
LOG="这里是日志路径"

这里是UNIX登陆SAS系统的调用命令 -sysin '这里是调用SAS程序' -log '这里是日志路径'
第三步:调用txt文件
crontab 这里是你第一步产生的txt文件路径
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

板凳
dankdark 发表于 2010-5-19 13:47:13
谢谢liuxin9023
你能给个具体的code
比如我想在每周6运行 a.sas, b.sas, c.sas
那就写:
if week(date)=7 then run a.sas b.sas c.sas;
请指教,谢谢了

报纸
yatming 发表于 2010-5-19 15:39:14
mytest.sh:
#!/bin/ksh

weekday=$(date  "+%u " )
#weekday=$(date  "+%w" )
echo $weekday
if [ [ $weekday -eq 6 ]]
then
  nohup sas -sysin &path/a.sas
  nohup sas -sysin &path/b.sas
  nohup sas -sysin &path/c.sas
  echo "complete!"
fi

好几月没碰了,有些忘了,if判断可能有些问题,如果不行,换成字符判断吧,执行这段script建议后台运行,目前a.sas,b.sas,c.sas是串行的,如果需要并行,三条命令后面加“&”,直接丢给后台。
另外可能sas command无法执行成功,这需要把sas path直接配给ENV里path去,或者.profile中去添加个alias,再执行下.profile即可。程序里的&path需要改成绝对路径。

这段玩的是ksh,版主那段是bsh,bsh没玩过,如果没有ksh,本人也爱莫能助了。
已有 1 人评分学术水平 热心指数 收起 理由
cloveror + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

地板
nkwilling 发表于 2010-5-19 16:03:41
楼上的解答也是正解.不过还是不知道楼主的提问是并行教本运行还是串行?如果是并行,还需要考虑作业之间的依赖关系.如果是串行的,用我的回复即可.自己再琢磨吧,别指望别人给你所有现成的答案.

7
yatming 发表于 2010-5-19 16:26:13
恩,版主说的不错。我也在想,周期是一个星期,如果另起个脚本一直在那边sleep,对资源太残酷,所以写了个雏形作为crontab文件调用的脚本,周期为每天,这样每天都会去判断。
另外一种,不像at命令,crontab本身也支持以星期为周期的调度规则,所以直接周期定在每周六,执行的脚本中也就不需要日期的判断,也是很好的方法。有依赖关系的话,就如版主所说,需要自己在scipt中去写逻辑关系了。

8
dankdark 发表于 2010-5-20 05:09:28
谢谢 nkwilling, patming.
正在学习中

9
lc222328 发表于 2016-8-26 11:03:23
请问你现在知道如何实现按设定时间运行的功能了吗?可不可以告诉我一下,谢谢

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-5 20:09