linux下编写一个shell脚本 每天0点 定时执行某一可执行程序test。 刚学习shell希望大侠们给个代码参考!

如题所述

概述

linux用到定时任务需要crontab的帮助

首先终端键入:crontab -e

root@sys #:crontab -e

然后进行编辑,这里操作和vim操作一至

假设,我需要定时每秒访问一次指定网页,访问网页的脚本已经写好了,叫view.sh,放在了/user目录下,那么定时脚本将需要这么些。

*/1 * * * * /bin/sh /user/view.sh

解析

crontab [-u username] [-l|-e|-r]

参数:

-u: 只有root才能进行这个任务,也即帮其他用户新建/删除crontab工作调度;

-e: 编辑crontab 的工作内容;

-l: 查阅crontab的工作内容;

-r: 删除所有的crontab的工作内容,若仅要删除一项,请用-e去编辑。

crontab -e 进入编辑模式  #此时会进入vi的编辑界面让你编辑工作。注意到,每项工作都是一行。

*/1   *    *     *    *   /bin/sh /user/view.sh
#分  时   日   月  周  |=========命令行===|

代表意义    分钟    小时    日期    月份    周    命令    

数字范围    0~59    0~23    1~31    1~12    0~7    就命令啊    

特殊字符  -  代表意义    

*(星号)   ---  代表任何时刻都接受的意思。举例来说,范例一内那个日、月、周都是*,就代表着不论何月、何日的礼拜几的12:00都执行后续命令的意思。    

,(逗号)   ---  代表分隔时段的意思。举例来说,如果要执行的工作是3:00与6:00时,就会是:

0 3,6 * * * command

时间还是有五列,不过第二列是 3,6 ,代表3与6都适用

-(减号)   ---   代表一段时间范围内,举例来说,8点到12点之间的每小时的20分都进行一项工作:

20 8-12 * * * command

仔细看到第二列变成8-12.代表 8,9,10,11,12 都适用的意思

/n(斜线)  ---  那个n代表数字,即是每隔n单位间隔的意思,例如每五分钟进行一次,则:

*/5 * * * * command

用*与/5来搭配,也可以写成0-59/5,意思相同

拓展内容

linux

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2019-10-02

在某个时间段执行某个程序,准确的说是“定时任务”,我这里介绍2中linux(ubuntu)下定时执行python脚本的方式。

方法一:

    准备好定时启动的脚本auto.py

    用root权限编辑以下文件

    在文件末尾添加以下命令

以上代码的意思是每隔两分钟执行一次脚本并打印日志。

crontab编写解释

    基本格式

    举例说明

方法二:

APScheduler定时框架

APScheduler是一个 Python 定时任务框架,使用起来十分方便。提供了基于日期、固定时间间隔以及 crontab 类型的任务,并且可以持久化任务、并以 daemon 方式运行应用。

使用 APScheduler 需要安装

每天早上6点半执行的例子

代码中的 BlockingScheduler 是什么呢?

BlockingScheduler 是 APScheduler 中的调度器,APScheduler 中有两种常用的调度器,BlockingScheduler 和 BackgroundScheduler,当调度器是应用中唯一要运行的任务时,使用 BlockingSchedule,如果希望调度器在后台执行,使用 BackgroundScheduler。

代码中是 cron 是什么?

cron: 在特定时间周期性地触发

本回答被网友采纳
第2个回答  2013-04-17
用crontab定时任务。
crontab -e 编辑定时任务,你可以加入:* 00 * * * ~/test
保存定时任务,这样就可以实现你的目的了。追问

我还是不太懂,是不是直接编辑crontab ,0 0 * * * /home/test
这样系统每天就在0点0分自动执行了么?

追答

对的,关于crontab的详细用法,你可以网上搜一下,这是linux的定时管理。

第3个回答  推荐于2017-04-25
放在crontab里啊
# m h dom mon dow command
0 0 * * * /home/yourshell.sh追问

我还是不太懂,是不是直接编辑crontab ,0 0 * * * /home/test
这样系统每天就在0点0分自动执行了么

追答

用crontab -e命令来编辑
对,自动执行。
第一个0代表0分,第二个0代表0时,接下来的3个*号表示每天每月每周都执行,command代表您要执行的脚本。

追问

这样就不用去写脚本了是吧 嗯 我明白了 谢谢你了 学习了 crontab命令。

追答

您要执行的脚本还是得写啊,crontab就是设置自动执行您所写的脚本的时间。

本回答被提问者采纳
相似回答