当前位置:首页 » 网页前端 » 等待几小时后执行shell脚本
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

等待几小时后执行shell脚本

发布时间: 2022-04-28 10:19:52

A. linux 中实现延迟45分钟后执行命令,写了一段c程序,实现延迟,接下来,该如何执行命令呢,也就是shell

1、system(执行shell 命令)
相关函数 fork,execve,waitpid,popen
表头文件 #include<stdlib.h>
定义函数 int system(const char * string);
函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/sh-c
string来执行参数string字符串所代表的命令,此命令执行完后随
即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时
搁置,SIGINT和SIGQUIT 信号则会被忽略。
返回值 如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-
1。若参数string为空指针(NULL),则返回非零值。如果system()调
用成功则最后会返回执行shell命令后的返回值,但是此返回值也有
可能为system()调用/bin/sh失败所返回的127,因此最好能再检查
errno 来确认执行成功。
附加说明 在编写具有SUID/SGID权限的程序时请勿使用system(),system()会
继承环境变量,通过环境变量可能会造成系统安全的问题。

例如:
#include<stdlib.h>
main()
{
system(“ls -al /etc/passwd /etc/shadow”); //换成./test.sh 可执行相关脚本
}

当然也可以用管道或exec函数族来调用shell

B. linux中怎样让shell脚本等待其他脚本文件执行完

在shell里写一个条件判断语句,去查询上一条命令执行的结果,如果执行成功则执行下面的语句。
如是上面的命令是一个简单的命令,就用sleep来控制。这都是常用方法

C. 在shell脚本中,比如执行一个命令,在等待3秒后,没有这个命令的结果,就执行下一条,这个怎么写呀

#!/bin/bash

func()
{
wget...
touchfinished
}

func&
sleep3000
if[-ffinished]
then
echo"finished"
else
echo"notfinished"
fi
rm-ffinished

D. shell脚本跑72小时后结束

开始有个时间
然后不断循环测试重启
重启后记录时间,和开始时间比,超过72小时就kill 自己

也可以写个计划任务,72小时后,杀掉这个shell进程

E. 在Linux下数据库中怎样设定一个时间自动执行一个shell脚本文件,例如:auto.sh

Linux数据库应该是无法执行shell脚本的,应该是Linux系统下执行shell脚本吧。
直接在linux下输入crontab -e,然后配置一段代码如下:
01 8 * * * /bin/bash path(你的文件目录)/auto.sh
前五位没记错的话应该分别对应分钟,小时,日,月,星期。
如果你希望保存日志的话可以用输出重定向,如下:
01 8 * * * /bin/bash path(你的文件目录)/auto.sh > /tmp/auto.log 2 > &1 &
这样如果文件执行错误的话,你可以去/tmp目录下去查询错误日志,便于程序的优化。
关于crontab的详细介绍给你个传送门:
http://www.jb51.net/LINUXjishu/19905.html
我也是菜鸟,共同学习共同进步,祝好。

F. linux中怎样让shell脚本等待其他脚本文件执行完

第三种方法主要用于在脚本中切换用户su、切换目录cd等命令。
source

.
命令是相同的。
你可以搜索
source
补充,如何查看脚本运行是否开启了bash子进程
vim
file.sh
写入
#!/bin/bash
#echo
$$命令会输出bash进程ID
echo
$$
保存并赋予可执行权限chmod
u+x
file.sh
在你的shell中输入,echo
$$
屏幕输出4176
./file.sh
屏幕输出3600
bash
file.sh
屏幕输出3984
source
file.sh
屏幕输出4176

你直接在shell中输出的一样,说明是在同一个bash进程

G. 如何解决Shell脚本执行超时的问题

执行超时那就说明环境出问题,比如网络环境不通了,脚本计算任务过多。那只能是有问题查问题了。你也可以对脚本的执行加上监控,比如使用timeout命令限制执行时间,如到达一定的时间后没执行完,然后就发消息通知你。对于超时的任务可以尝试多次等,或者改进代码。

H. shell中如何实现隔段时间执行下一个命令

使用sleep命令,比如
echo "1" #执行第一个命令
sleep 2 #sleep 2秒
echo "2" #执行第二个命令

I. 求助一个shell脚本定时执行的问题

每分钟执行一次的话是不需要加上"/1”的,并且echo输出的值也不会在当前窗口输出的。你想测试的话你可以把那个命令换成sleep 100,时间到了之后你再执行 ps aux |grep sleep 就能判断出有没有执行了。
[root@localhost aa]# ps aux |grep sleep
root 17142 0.0 0.1 1668 388 ? Ss 03:52 0:00 sleep 100
root 17149 0.0 0.2 5028 660 pts/2 R+ 03:53 0:00 grep sleep