免费注册 查看新帖 |

Chinaunix

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

[系统管理] 脚本如何写.自动执行命令 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-11-02 15:43 |只看该作者 |倒序浏览
本帖最后由 yylaugz 于 2012-11-02 15:45 编辑

我刚开始接触LINUX,想在LINUX里自动执行一些命令,来启动我需要的一些服务.
环境:
ORACLE安装在/home/oracle下,使用帐户oracle,密码db123456
A程序安装在/home/xx/a下(A程序的启动命令在/a/bin/a.sh),使用帐户usera,密码a123456
b程序安装在/home/xx/b下(A程序的启动命令在/a/bin/b.sh),使用帐户userb,密码b123456

希望用脚本在每天7:00自动自行下面的操作:
首先,需要先登陆oracle,启动ORACLE服务.
接着,登陆USERA,启动a.sh
最后,登陆userb,启动b.sh
到每天22:00,再用脚本关闭上述操作,
同时备份oracle\A,B程序的安装目录到/home/backup下.

整了很久,一点头绪也没有.
谢谢.

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
2 [报告]
发表于 2012-11-02 15:44 |只看该作者
先把脚本写出来,功能完全没有问题了,做计划任务就行了

论坛徽章:
0
3 [报告]
发表于 2012-11-02 15:47 |只看该作者
我就是不懂如何写脚本.所以来论坛求助..

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
4 [报告]
发表于 2012-11-03 01:56 |只看该作者
try "runuser"

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:192015年迎新春徽章
日期:2015-03-04 09:57:09
5 [报告]
发表于 2012-11-05 09:40 |只看该作者
这个很简单啊,楼主是哪方面卡到了?

论坛徽章:
13
技术图书徽章
日期:2014-04-29 14:15:42IT运维版块每日发帖之星
日期:2015-12-12 06:20:00IT运维版块每日发帖之星
日期:2015-08-30 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-08-02 06:20:002015年亚洲杯之澳大利亚
日期:2015-04-03 15:03:12申猴
日期:2015-03-20 09:00:292015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15季节之章:冬
日期:2015-01-20 17:08:47双子座
日期:2014-11-21 16:30:31技术图书徽章
日期:2014-07-11 16:29:08
6 [报告]
发表于 2012-11-05 11:47 |只看该作者
本帖最后由 dengbao2001 于 2012-11-05 11:47 编辑

7点和10点执行的指令都写在两个不同的sh文件中,可以在root用户下添加此计划任务,这样su到另外一个用户就不用输入密码。

将两个sh文件设定为X属性

比如7点的脚本的路径是/root/19.sh

10点脚本的路径是/root/22.sh

执行命令crontab ,将需要执行的脚本写入

* 19 * * * /root/19.sh
* 22 * * * /root/22.sh

保存crontab -l就可以看到有些脚本需要执行

论坛徽章:
21
白羊座
日期:2013-08-23 15:49:17金牛座
日期:2013-10-08 17:00:03处女座
日期:2013-10-12 11:54:11CU十二周年纪念徽章
日期:2013-10-24 15:41:34午马
日期:2013-11-27 14:07:21巨蟹座
日期:2013-12-04 10:56:03水瓶座
日期:2013-12-04 15:58:00亥猪
日期:2014-05-24 16:02:3115-16赛季CBA联赛之辽宁
日期:2016-11-07 13:52:53戌狗
日期:2013-08-23 16:15:31白羊座
日期:2013-08-24 21:59:24巨蟹座
日期:2013-08-25 16:34:24
7 [报告]
发表于 2012-11-05 14:11 |只看该作者
你只需要确定2点,

1,是你脚本里的内容,
2,计划任务,crontab ,

论坛徽章:
0
8 [报告]
发表于 2012-11-06 20:10 |只看该作者
dooros 发表于 2012-11-05 09:40
这个很简单啊,楼主是哪方面卡到了?


非常惭愧啊,现在连如何将这些命令操作写成脚本也不会。。。

论坛徽章:
0
9 [报告]
发表于 2012-11-07 18:48 |只看该作者
用root的crontab来执行,具体写:
/root/root7.sh包含:
su - oracle -c "oracle启动脚本"
su - usera -c "/home/xx/a/bin/a.sh"
su - userb -c "/home/xx/b/bin/b.sh"

/root/root22.sh包含:
su - oracle -c "oracle停止脚本"
kill -9 a.sh的进程号
kill -i b.sh的进程号
不知道你的a.sh和b.sh是shell套shell还是单独的进程,反正找办法停止就行,以上kill -9可能不合适。

crontab:
* 7 * * * /root/root7.sh
* 22 * * * /root/root22.sh






* 7 * * * su - oracle "启动脚本"

论坛徽章:
0
10 [报告]
发表于 2012-11-08 09:36 |只看该作者
dooza 发表于 2012-11-07 18:48
用root的crontab来执行,具体写:
/root/root7.sh包含:
su - oracle -c "oracle启动脚本"

--
非常感谢dooza前辈.
a.sh或b.sh均是单进程的.
只是有执行的先后顺序而已.
-
需要将以下的目录复制在到/home/backup下,
/home/oracle
/home/xx/a
/home/xx/b
的命令是?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP