首页 > 系统相关 >Linux 定时任务执行Shell脚本【CentOS6.8】

Linux 定时任务执行Shell脚本【CentOS6.8】

时间:2022-12-05 14:31:14浏览次数:78  
标签:somedir Shell scripts sh sleep CentOS6.8 && Linux home


本人一直从事Windows系统的开发,最近一年基本上都在研究.NET跨平台相关的知识,最近遇到一个棘手的问题,由于前期技术选型的时候说采用WebAPI的方式进行部署,我当时就答应了,到最后上线的时候突然发现一个逆天的功能,需要通过API修改系统的IP,子网掩码,网关,设置完成以后系统需要重启

负责开发的同事完全按照windows上的编程模式,使用Windows内部函数修改这些参数并完成重启,但是在Linux上就行不通了,最后想了一个办法,设置一个定时计划,动态监控配置文件的方式,通过WebAPI写一个Shell文件,然后Linux通过定时任务检测改文件,如果该文件存在,就执行该文件,执行成功以后删除该文件,然后再刷新网络,重启电脑,废话不多说,具体实现如下:

编写定时任务执行脚本

initial.sh

#!/etc/bash
folder="/var/www/default"
file="/var/www/default/network.sh"
if [ ! -d "$folder" ]; then
mkdir "$folder"
fi
echo "----------->" >> "/var/www/default/log.log"
if [ -f "$file" ]; then
echo $file
source "$file"
echo "==========>" >> "/var/www/default/log.log"
rm -rf $file
fi

network.sh[该文件由API写入]

#!/bin/sh
# BY kerryhu
# MAIL:[email protected]
#这是一个自动修改网络ip、掩码、网关的脚本。
#使用方法ip_mod IP_MOD、MASK_MOD、GW_MOD
#例:ip_mod 10.10.10.5 255.255.255.0 10.10.10.1
#其中IP_MOD、MASK_MOD、GW_MOD是要改成的ip、mask、gw
#设置变量
PROC=/bin/sed
IP_PATH=/etc/sysconfig/network-scripts/ifcfg-eth1
GW_PATH=/etc/sysconfig/network
IP_PRI=`grep -i ipaddr $IP_PATH|awk -F "=" '{printf $2 }'`
MASK_PRI=`grep -i netmask $IP_PATH|awk -F "=" '{printf $2}'`
GW_PRI=`grep -i GATEWAY $GW_PATH|awk -F "=" '{printf $2}'`
IP_MOD=192.168.1.214
MASK_MOD=255.255.0.0
GW_MOD=192.168.1.1
#修改ip、mask、gw
$PROC -i "s/$IP_PRI/$IP_MOD/g" $IP_PATH
$PROC -i "s/$MASK_PRI/$MASK_MOD/g" $IP_PATH
$PROC -i "s/$GW_PRI/$GW_MOD/g" $GW_PATH
#重启网卡
/etc/rc.d/init.d/network restart

设置定时任务

crontab -e
## For excuting scripts.sh every 3 seconds##on 2016年9月20日 17:41:53
*/1 * * * * /bin/bash /var/www/default/initial.sh
*/1 * * * * sleep 5 && /bin/bash /var/www/default/initial.sh
*/1 * * * * sleep 10 && /bin/bash /var/www/default/initial.sh
*/1 * * * * sleep 15 && /bin/bash /var/www/default/initial.sh
*/1 * * * * sleep 20 && /bin/bash /var/www/default/initial.sh
*/1 * * * * sleep 25 && /bin/bash /var/www/default/initial.sh
*/1 * * * * sleep 30 && /bin/bash /var/www/default/initial.sh
*/1 * * * * sleep 35 && /bin/bash /var/www/default/initial.sh
*/1 * * * * sleep 40 && /bin/bash /var/www/default/initial.sh
*/1 * * * * sleep 45 && /bin/bash /var/www/default/initial.sh
*/1 * * * * sleep 50 && /bin/bash /var/www/default/initial.sh
*/1 * * * * sleep 55 && /bin/bash /var/www/default/initial.sh
#-----------------------------------------------------------------
service crond start

注意事项

permission denied

参考文档:​​http://jingyan.baidu.com/article/90808022fa50dbfd90c80f52.html​

etc/bash: bad interpreter:

参考文档:​​http://gubit.blog.sohu.com/30564154.html​

如何通过秒设置定时任务?

crontab -e
## For excuting scripts.sh every 3 seconds##on 2014-10-15
*/1 * * * * /home/somedir/scripts.sh
*/1 * * * * sleep 3 && /home/somedir/scripts.sh
*/1 * * * * sleep 6 && /home/somedir/scripts.sh
*/1 * * * * sleep 9 && /home/somedir/scripts.sh
*/1 * * * * sleep 12 && /home/somedir/scripts.sh
*/1 * * * * sleep 15 && /home/somedir/scripts.sh
*/1 * * * * sleep 18 && /home/somedir/scripts.sh
*/1 * * * * sleep 21 && /home/somedir/scripts.sh
*/1 * * * * sleep 24 && /home/somedir/scripts.sh
*/1 * * * * sleep 27 && /home/somedir/scripts.sh
*/1 * * * * sleep 30 && /home/somedir/scripts.sh
*/1 * * * * sleep 33 && /home/somedir/scripts.sh
*/1 * * * * sleep 36 && /home/somedir/scripts.sh
*/1 * * * * sleep 39 && /home/somedir/scripts.sh
*/1 * * * * sleep 42 && /home/somedir/scripts.sh
*/1 * * * * sleep 45 && /home/somedir/scripts.sh
*/1 * * * * sleep 48 && /home/somedir/scripts.sh
*/1 * * * * sleep 51 && /home/somedir/scripts.sh
*/1 * * * * sleep 54 && /home/somedir/scripts.sh
*/1 * * * * sleep 57 && /home/somedir/scripts.sh
#-----------------------------------------------------------------

参考文档:​​http://www.tuicool.com/articles/QJr2ErF​


标签:somedir,Shell,scripts,sh,sleep,CentOS6.8,&&,Linux,home
From: https://blog.51cto.com/u_11295556/5912083

相关文章

  • Linux将一个文件夹或文件夹下的所有内容复制或移动到另一个文件夹
    1、将一个文件夹下的所有内容复制到另一个文件夹下cp-r/home/packageA/*/home/cp/packageB/或cp-r/home/packageA/./home/cp/packageB/这两种方法效果是一样的。方法......
  • Linux系统zabbix_agentd客户端安装与配置
    官网下载zabbix安装包(zabbix安装包里包含了zabbix_agentd客户端安装包,我们只选择zabbix_agentd客户端安装) zbbix官网下载地址:  http://www.zabbix.com/download ......
  • 华为4g模块 linux驱动程序,定制Android之4G-LTE模块驱动
    定制Android之4G-LTE模块驱动一.        简介本文讲述在Android内核中,添加中国移动4G-LTE制式华为MU909模块驱动,实现通过4G上网业务,电话业务,短信业务。CPU:Sams......
  • OpenCASCADE-Glue Faces to Shell
    BRep边界表示法通过对几何曲面加上边界Wire限定得到有界的曲面片后,如何将曲面片连接起来生成一个闭合的Shell,进而得到一个Solid实体?以前写过如何将无序的Edge连接......
  • TinyShell(CSAPP实验)
    简介CSAPP实验介绍学生实现他们自己的带有作业控制的UnixShell程序,包括Ctrl+C和Ctrl+Z按键,fg,bg,和jobs命令。这是学生第一次接触并发,并且让他们对Unix的进程控制、......
  • Linux-知识点
     1、三种网络模式(桥接,仅主机,nat) vmware虚拟机的对应三种网络模式VMnet0虚拟交换机:Bridged桥接模式特点:a.默认使用VMnet0,不提供DHCP服务(DHCP服务是指由服务器控......
  • Linux文件系统
    1.Linux的分区创建后还不能直接访问,还需要挂载到某个目录下;2.分区创建好后,此分区会有个分区名,然后需要对该分区以特定文件系统进行格式化(比如ext4);3.通过命令将此格式化后......
  • MeterSphere BeanShell 前置脚本拦截请求,获取请求参数,修改后放回请求体
    在BeanShell前置脚本中拦截请求,获取请求参数,修改后放回请求体背景在测试项目时,需要对接口请求中的参数值进行首字母排序后,拼成字符串,进行md5加密,然后将加密好的字符串,......
  • Linux 下 hwclock 读写 RTC 报错 Invalid argument
    以上错误信息都是因为year设置不当引起的。没有设置RTC,RTC也不会启动计时。下面首先设置正确的系统时间,然后将系统时间传递给RTC。tm里的tm_year是从1900年开始算的,如要......
  • Linux
    Linux入门概述我们为什么要学习Linuxlinux诞生了这么多年,以前还喊着如何能取代windows系统,现在这个口号已经小多了,任何事物发展都有其局限性都有其天花板。就如同在国内......