linux 定时 执行命令_linux 定时执行命令 - CSDN
精华内容
参与话题
  • linux中的定时及延时命令

    千次阅读 2017-11-01 18:05:13
    定时at ,cron

    at定时命令

    1.参数:

    at -l     ##列出延迟任务的id

       -r  任务id   ##删除此id任务

       -m             ##让无输出的id产生邮件

      -M              ##让有输出的id不产生邮件

      -c  任务id   ##查看此id延迟任务的执行动作

      -f   文件     ##用文件记录的命令作为延迟任务的执行动作

    2.at命令的使用控制

    系统默认全部用户拥有执行at命令的权力

    【at用户黑名单】

    默认情况下,系统存在用户黑名单/etc/at.deny

    此名单默认为空,并在白名单不存在时生效

    【在黑名单中写入student用户,student使用不了at命令】


    【at用户白名单】

    默认情况下,系统不存在白名单/etc/at.allow

    白名单出现,名单中出现的用户和root用户可以使用at命令,其他用户不能使用

    【黑名单和白名单都写入student用户,student用户可以使用at命令,说明白名单存在时,黑名单不生效】


    3.使用方法

    at  now+3min

    >命令

    >ctrl+d

    【示例1】

    【示例2】


    cron循环定时

    1.这个程序是由cron.service服务提供

    2.写入程序的时间和事件是永久保存的

    3.cron设定方法

    属性
    分钟
    小时 日期 月份 命令
    数字范围 0---59 0--23 1--31 1--12 0--7 动作

    4.特殊字符  *  表示任何时刻

    5.参数:

    -u:指定执行的用户

    -e:编辑cronab的工作内容

    -r:删除cronab的工作内容

    -l:查看cronab的工作内容

    【cron用户黑名单】

    默认情况下,系统存在用户黑名单/etc/cron.deny

    此名单默认为空,并在白名单不存在时生效


    【cron用户白名单】

    默认情况下,系统不存在白名单/etc/cron.allow

    白名单出现,名单中出现的用户和root用户可以使用at命令,其他用户不能使用


    6.设定方法

    【命令方式】

    crontab -e

    分钟 小时 事件 解释
    58 06 * * * rm -fr /mnt ##每天06点58分清除/mnt文件的内容
    58 6 1-15 * * rm -fr /mnt/ ##每月1-15号06点58分清除/mnt文件的内容
    */2 * 1,15 * 3 rm -fr /mnt/ ##每月1号,15号,每周3,隔2分钟清除/mnt文件的内容


    【文本方式】

     vim /var/spool/cron/用户名 ##以某种用户执行cron


    vim /etc/cron.d/文件           ##设定多个用户执行cron





    展开全文
  • Linux配置定时执行指定脚本

    万次阅读 2018-06-08 15:10:04
    Linux下,有时需要定时执行一些任务,如定时检测系统资源信息、定时备份数据库等操作,可以借助crontab命令,其基本命令格式如下: * * * * * {命令} 第一个*表示每xx(1-59)分钟,每分钟用*或*/1表示 第二个*...

        在Linux下,有时需要定时执行一些任务,如定时检测系统资源信息、定时备份数据库等操作,可以借助crontab命令,其基本命令格式如下:

        * * * * * {命令}

        第一个*表示每xx(1-59)分钟,每分钟用*或*/1表示

        第二个*表示每xx(0-23)小时

        第三个*表示日期,1-31

        第四个*表示月份,1-12

        第五个*表示星期x(0-6, 0为星期日)

        {命令}为要执行的命令或脚本

        crontab有如下几个常用参数:

        -l: 列出用户目前的crontab

        -e: 编辑当前用户的crontab

        -d: 删除当前用户的crontab

        在CentOS系统下,crontab命令的文件存放在目录/var/spool/cron下,每个用户的crontab一个文件,如下所示:

        

        使用-e编辑任务保存后,查看当前用户的定时任务列表如下:

        

        表示每天的3点45分执行shell脚本来备份数据库,脚本大致内容如下:

    #!/bin/bash
    
    date_now=$(date +%Y%m%d%H%M)
    
    db_user=xxx
    db_port=xxx
    db_host=xxx
    db_pwd=xxx
    db_name=xxx
    
    echo "Starting ..."
    start=`date +%s`
    
    /usr/local/mysql/bin/mysqldump -u${db_user} -h${db_host} -P${db_port} -p${db_pwd} --hex-blob -R -E --single-transaction -B ${db_name}|gzip > /backup_path/${db_name}_${date_now}.sql.gz
    
    end=`date +%s`
    
    dif=$[ end - start ]
    
    echo "备份时间: " ${date_now} " 备份的数据库名: " ${db_name} " ,耗时: " ${dif} "s" >> /xx/xxx/backup_db_info.txt
    
    
    

    保存shell脚本增加x可执行权限后即可。

    改进点:

    1. 备份多个数据库,可以考虑用for循环

    2. 如上是全库结构加数据库备份(可加-d参数只备份结构),数据量大的话时间会长,可以修改只备份重要数据表,其他小表可以另外时间备份,修改脚本或增加多一个定时任务即可。

    展开全文
  • linux- 系统的延时和定时命令

    千次阅读 2017-08-02 11:40:04
    linux中,可以设定延时执行命令,以及定时执行命令,延时任务是指在多久以后或在指定的时间系统自动执行命令,延时任务一次设定只能起效一次;定时任务是指在指定的某个时间自动执行某个命令,或程序,它与延时的...

    在linux中,可以设定延时执行命令,以及定时执行命令,延时任务是指在多久以后或在指定的时间系统自动执行命令,延时任务一次设定只能起效一次;定时任务是指在指定的某个时间自动执行某个命令,或程序,它与延时的区别在于定时任务可以重复的执行,例如每天的1点关机,就是定时任务。

    一:延时任务

    (1)创建延时任务:

    命令:at 时间  

    从现在多久以后执行某个任务

    [root@localhost 桌面]# at now+1min
    at> 
    

    在某个时间点执行某个任务

    [root@localhost 桌面]# at 11:00
    at> 
    

    注意:at 命令的最小单位是分钟

    在 a> 后面加上需要延时的任务命令

    再按 ctrl+d 即可发起动作,让延时任务生效。

    例子:在1分钟后自动在/mnt/ 下建立一个文件名叫 file3的文件

    先用watch 命令监控/mnt/下的文件

    watch -n 1 ls -l /mnt/
    


    如图,用at 命令创建任务


    在1分钟后,我们可以看到 /mnt/下 多了 file3 ,


    延时任务的其他一些管理命令:

    at -l            #查看延迟任务列表 后可以不跟任务的id
    atq              #查看延迟任务列表 后可以不跟参数
    at -d            #删除延迟任务,命令后面跟加要删除任务的id
    atrm             #删除延迟任务,命令后面跟加要删除任务的id
    at -c            #查看任务的内容,任务的具体操作
    at -f            #延迟执行文件中的内容,后跟文件名
    at -m            #延迟命令没有输出时仍然发送邮件给执行者,但邮件是空的
    at -M            #延迟命令有输出时但不发送邮件给执行者
    

    例子:查看延迟任务


    查看延迟任务在邮箱中的反馈


    (2)延时任务创建权限的设定

    延迟任务创建权限是指哪些用户有权力创建延迟任务

    设定方法:修改配置文件

    文件地址:/etc/at.deny          #黑名单,在名单上的用户没有权力创建延迟任务

                    /etc/at.allow          #白名单,系统默认没有创建这个文件,可以自己创建一个,但是注意 如果创建后只有白名单上的用户才可以创建延迟命令,

    例子:让student用户禁止创建延迟任务

    效果:


    二:计划定期任务

    定时任务有个crond 程序,它在系统中会每分钟扫描定时任务

    (1) 用命令创建延迟任务

    crontab -u username -e    #创建定时任务, -u后面跟创建此任务的用户名, -e 是进入编辑任务
                        -r    #删除定时任务
                        -l    #查看定时任务      
    


    cron文件语法:
    
          分     小时    日       月       星期     命令
    
          0-59   0-23   1-31   1-12     0-6     command     (取值范围,0表示周日一般一行对应一个任务)
    
         记住几个特殊符号的含义:
    
             “*”代表取值范围内的数字,
             “/”代表”每”,
             “-”代表从某个数字到某个数字,
             “,”分开几个离散的数字
    
    在 “分 时 天 月 周 命令“ 这些字段里,除了“命令”是每次都必须指定的字段以外,其它字段皆为可选

    字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。     举例如下:     5      *       *           *     *     ls             指定每小时的第5分钟执行一次ls命令     30     5       *           *     *     ls             指定每天的 5:30 执行ls命令     30     7       8           *     *     ls             指定每月8号的7:30分执行ls命令     30     5       8           6     *     ls             指定每年的6月8日5:30执行ls命令     30     6       *           *     0     ls             指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,

        30     3       10,20       *     *     ls             每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]

        25     8-11    *           *     *     ls             每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]

        */15   *       *           *     *     ls             每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]

         30    6       */10        *     *     ls             每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。                                                                                                               

         50    7       *           *     *     root           每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件              






    例子: 给root用户创建一个定期命令

    crontab -u username -e 




    查看任务,并删除定去任务


    (2)用编辑文件的方式来创建定期命令

    在/etc/cron.d/filename 下创建一个文件

    编辑文件的位置: /etc/cron.d/filename

    定时任务的文件编辑,和cron -e 里面编辑的格式一样


    (3)定时任务创建权限的设定

    方式:编辑文件 /etc/crond.deny                   # 编辑cron 创建定期任务的黑名单

                           /etc/crond.allow                   # 编辑cron 创建定期任务的白名单,系统默认没有白名单,可以自己创建,

                                                                     # 但注意,创建后,只有白名单上的用户才又权限创建任务

    三:系统临时文件的定期清理

    系统在运行时会产生临时文件,系统可以定期清理这些临时文件,我们可以设置系统清理临时文件的周期

    设置方法:在/usr/lib/tmpfiles/下创建一个以.conf结尾的文件   并修改配置文件 /usr/lib/tmpfiles.d/*.conf

       文件类型     文件名称      文件权限   文件所有人  文件所有组  文件存在时间
    例: -        /mnt/tmpfile1    644       root   	root 	   10s

    编辑好文件后需要

    systemd-tmpfiles --create /usr/lib/tmpfiles.d/*    让配置生效
    systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*     清理
    

    例子:让/mnt/tmpfile1 里面的文件在存在40秒以上可以被系统清理


    设定 /usr/lib/tmpfiles.d/test1.conf

    执行清理

    效果



    展开全文
  • Linux定时执行脚本实例

    万次阅读 2018-05-31 10:49:20
    Linux下我们用crontab来实现定期执行脚本。查看crontab 输入命令:cat /etc/crontabcrontab -u //设定特定用户的定时服务crontab -l //列出当前用户定时服务内容 crontab -r //删除当前用户的定时服务crontab -e ...

    在Linux下我们用crontab来实现定期执行脚本。

    查看crontab     输入命令:cat /etc/crontab

    crontab -u //设定特定用户的定时服务
    crontab -l //列出当前用户定时服务内容
    crontab -r //删除当前用户的定时服务
    crontab -e //编辑当前用户的定时服务

    在设定编辑之前都建议列出服务查看一下:crontab -l

    显示有一个已经设定好的定时任务 每天九点10分执行 脚本命令: hadoop jar /tycrtest/test2.jar

    然后编辑定时任务:crontab -e  进入编辑界面会显示已存在的定时任务 


    * * * * * user_name command to be executed   

    user_name 表示执行定时任务的用户  不指定默认当前用户   

    command to be executed   表示要执行的脚本语句。

    按 i 键进入编辑   编辑完毕后 按esc  然后输入 :wq  报存并退出   注意不是输入wq  是:wq

    前面五位是定时执行的时间周期 说明如下:

    第一个 * 表示分钟:取值范围 0-59

    第二个 * 表示小时:取值范围0-23

    第三个 * 表示天数:取值范围1-31

    第四个 * 表示月份:取值范围1-12

    第五个 * 表示每周:取值范围0-6

    使用(-)可以划定范围

     如:0 0-3 * * *  脚本        表示每天0-3点整执行脚本

    使用(,)可以枚举时间

     如: 0,15,30,45 * * * * 脚本    表示每个小时的0分,15分,45分,30分会执行脚本

    使用(/)可以指定间隔

     如:* */8 * * * 脚本         表示每8小时执行脚本

    组合用法

    0-20/10 * * * * 脚本        表示在前20分钟内每隔10分钟执行脚本

    本人的一个定时脚本语句:

    10 9 * * * hadoop jar /tycrtest/test2.jar   默认root 每天9点10执行hadoop jar /tycrtest/test2.jar 这个脚本


    展开全文
  • linux定时运行命令

    千次阅读 2019-02-26 17:07:13
    1.命令简介 每个用户都有各自不同的计划任务列表,用各自的帐户登录后运行 crontab -l 就可查看到各任务的计划任务情况,使用下列命令可以修改自己的计划任务 crontab -e 每次添加完任务后,一定记得重新启动...
  • linux定时执行命令

    千次阅读 2013-11-28 15:50:38
    linux下,crond命令可用来定时执行某个脚本,当定时程序用。 用法参考: http://www.linuxidc.com/Linux/2010-08/27700.htm
  • linux定时运行命令脚本——crontab

    万次阅读 多人点赞 2015-04-17 11:25:06
    Linux中,周期执行的任务一般由cron这个守护进程来处理 ps -ef | grep cron cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron的配置文件称为“crontab”,是“cron table”的简写。一、 ...
  • Linux系统下定时关机命令shutdown

    万次阅读 2012-11-18 22:50:16
    接触过linux系统的都知道shutdown命令用于安全的关闭/重启计算机,用决定命令shutdown不仅可以实现定时关机,还可以由用户自己决定关机时的参数:以下简单了解一下同样的功能在linux下使用shutdown命令和在Windows下...
  • linux定时执行shell脚本

    万次阅读 2018-08-30 20:37:35
    写一个shell脚本,定时执行简单示例 很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据、数据库数据等 不适合人工经常做的一些操作这里简单说下   Shell俗称壳,类似于DOS...
  • Linux定时执行php

    2019-01-23 18:19:09
    Linux定时执行php脚本。使用linux工具crontabs 1.安装crontabs yum install crontabs 2.写入定时执行任务 执行命令: crontab -e 写入命令: 0 */4 * * * curl http://xxx.com/xxx.php 上面例子意思是每4...
  • Learn from one's ...利用crontab可以在linux上面创建定时任务工作,该工作会被记录到/var/spool/cron里面去,该记录已帐号为区分,不信你可以执行下面命令进去看下: [root@ccw cron]# cd /var/spool/cron/ [root
  • linux 定时执行shell脚本

    万次阅读 2009-10-29 23:52:00
    在oracle 中可以利用dbms_job包定时执行pl/sql、sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成本文讲述crontab具体用法,以供备忘. 在oracle 中可以利用dbms_job包定时执行pl/sql、sql过程,...
  • Linux定时执行java程序

    千次阅读 2018-06-16 00:59:00
    Linux定时执行java程序cron是Linux系统下一个自动执行指定任务的程序。用户可以通过crontab命令来设置自己的定时任务。Linux定时执行java程序,需要将java程序打包为jar包,下面介绍一下idea环境下打包maven下普通的...
  • 有什么方法可以,在terminal直接执行 nohup 这个语句就可以将递归调用的所有日志都输出至.log 但是在crontab 中定时执行的时候,却只有 job_import.sh 本身的日志可以输出至 .log 求linux大神帮助。百度搜索不到...
  • linux定时重启命令

    千次阅读 2018-08-18 15:20:32
    最近在维护网站的时候 一两天后网站就会变的很卡,进入LINUX服务器查看 top -l 和 free -m 发现内存消耗过大,重启一般就解决问题了,也就是回收内存重新在释放内存。 可以设定每天晚上访问空闲的时间重启一次,就...
  • Linux下如何定时执行mysql命令

    千次阅读 2018-01-25 17:11:42
    1、Linux中的定时任务:   1-1.Linux中每行定时任务的描述格式如下: minute hour day month dayofweek command minute - 从0到59的整数  hour - 从0到23的整数  day - 从1到31的整数 (必须是指定...
  • Linux中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron的配置文件称为“crontab”,是“cron table”的简写。当...
  • linux定时执行mount命令

    2016-04-29 13:47:01
    定时启动脚本采用crontab进行设定定时任务。 1、进入crontab追加定时任务,在终端输入如下命令: crontab -e 2、做完第1步后,进入文本编辑界面,输入任务设定 */10 * * * * /home/test/test.sh 3、文本编辑退出...
  • linux定时任务精确到秒

    千次阅读 2018-03-04 11:51:32
    linux的crond定时任务只能精确到分,如何才能做到控制到秒呢?答案肯定是明显的,实现的方法也有多种,但本文只介绍一个相对来说比较精确,又方便的写法。1、增加一个普通的定时器脚本dateTime.sh(用于打印当前时间)2...
1 2 3 4 5 ... 20
收藏数 60,290
精华内容 24,116
关键字:

linux 定时 执行命令