zoukankan      html  css  js  c++  java
  • Linux 执行定时任务 shell脚本

    Linux上面执行定时任务,我们可以利用crontab -e直接编辑定时任务 另外我们还可以写好shell脚本,定时去执行shell脚本,这两个方法都可以起到定时执行的作用

    下面我详细说一下入如何执行shell脚本

    1.声明一下我安装的lnmp环境,shell脚本存放的位置在 /usr/local/sbin路径下面

    新建一个test.sh

    #! /bin/bash  
    echo "yes" >> /home/abc.txt
    

    保存完毕后记得给予权限 chmod 777 test.sh

    Shell脚本通常都是以.sh 为后缀名的,这个并不是说不带.sh这个脚本就不能执行,只是大家的一个习惯而已。所以,以后您发现了.sh为后缀的文件那么它可能是一个shell脚本了。test.sh中第一行要以 “#! /bin/bash” 开头,它代表的意思是,该文件使用的是bash语法。如果不设置该行,虽然您的shell脚本也可以执行,但是这不符合规范。 # 表示注释,在前面讲过的。后面跟一些该脚本的相关注释内容以及作者和创建日期或者版本等等。当然这些注释并非必须的,如果您懒的很,可以省略掉,但是不建议省略。因为随着工作时间的逐渐过渡,您写的shell脚本也会越来越多,如果有一天您回头查看自己写过的某个脚本时,很有可能忘记该脚本是用来干什么的以及什么时候写的。所以写上注释是有必要的。另外系统管理员并非只有您一个,如果是其他管理员查看您的脚本,他看不懂岂不是很郁闷。下面该运行一下这个脚本了:

    2.将shell脚本加入定时任务

    crontab -e

    * * * * * /usr/local/sbin/test.sh

    参  数:
    -e  编辑该用户的计时器设置。
    -l  列出该用户的计时器设置。
    -r  删除该用户的计时器设置。
    -u<用户名称>  指定要设定计时器的用户名称。

    crontab 格式:

    分钟   小时   日   月   星期   命令

    *        *      *    *     *       *

    第1列表示分钟1~59 每分钟用*或者 */1表示
    第2列表示小时1~23(0表示0点)
    第3列表示日期1~31
    第4列 表示月份1~12
    第5列标识号星期0~6(0表示星期天)
    第6列要运行的命令

    记住几个特殊符号的含义:
    “*”代表取值范围内的数字,
    “/”代表”每”,
    “-”代表从某个数字到某个数字,
    “,”分开几个离散的数字

    3.查看执行test.sh脚本的结果

    [root@iz2ze2ewt14msyueuiq693z home]# cat abc.txt 
    yes
    yes
    yes
    yes
    

    执行成功  666

    --------------------- 转自  作者:苏康申 来源:CSDN 原文:https://blog.csdn.net/sukangshen/article/details/78900147?utm_source=copy 

    其他参考: https://www.jb51.net/article/101569.htm

  • 相关阅读:
    C/C++程序员应聘常见面试题剖析(经典)
    连续几个数组在内存中的存储地址
    虚析构函数
    c++中的函数模版和类模版
    C++多态性(续)
    malloc和new的区别和联系
    深入浅出多线程系列之四:简单的同步 lock
    Silverlight_Rest_WCF系列之六:跨线程
    深入浅出多线程系列之五:一些同步构造(下篇)
    深入浅出多线程系列之五:一些同步构造(上篇)
  • 原文地址:https://www.cnblogs.com/zhangchao0515/p/9772706.html
Copyright © 2011-2022 走看看