2017-03-14 16:33:45 Lv_Victor 阅读数 5177
  • 定时器、看门狗和RTC-1.9.ARM裸机第九部分

    本期课程主要讲述SoC中的时间相关的外设,包括定时器、看门狗定时器和实时时钟RTC。首先讲述了定时器的基本概念,然后以PWM定时器为例详细讲解了定时器的使用及编程细节;看门狗定时器部分详细讲了看门狗的意义和常规工作形式;后2节课讲了RTC的概念、框图和编程方法

    7303 人正在学习 去看看 朱有鹏

很久没发博客了,说明自己这三四个月确实没怎么积累学习成果了(或者说都是学习比较零散的新知识不足以写成博客)。因为12月份找到了毕业那份工作之后就开始闲下来了,过完年出来正在做一个软件开发的实习(做个搬砖临时工挣个三餐,顺便不想呆在学校宿舍堕落地等待毕业),最近才开始积累些学习成果。最近在做shell脚本的开发,涉及到linux设置定时任务的问题。

1.用crontab/cron命令,可以man一下crontab的用法。

crontab -e : 编辑定时任务,格式如下:

minute hour day-of-month month-of-year day-of-week commands    

使用星号*表示任一时间/所有时间,举例:

*/5 * * * * echo "Hello"

这句定时任务表示每5分钟echo一次"Hello",/5 的作用就表示每5(分钟)。echo输出的内容并不出输出到命令行中,可以将其重定向到文件当中:

echo "Hello" /home/admi/test.log

更多crontab详细写法网搜。


command自然可以是执行一个脚本:

* * * * * /home/admi/test.sh
这句定时任务表示每分钟执行一遍test.sh脚本,更复杂的定时任务就应该以这样形式,先写在脚本上,然后定时去执行这个脚本(注意要提前给它可执行权限)。


2.定时任务之发邮件
可以直接在crontab -e 指定邮件地址,使用 MAILTO关键字修改发邮件地址,如:

MAILTO=hello@email.com

然后每次执行定时任务之后都会将结果发送给该邮件地址。
另一种方法是在shell脚本里面用mail关键字,mail是使用sendmail服务的,貌似要先安装sendmail服务,自行网搜。mail用法如下:
mail -s "This is subject" -c "hello@email.com haha@email.com" hi@email.com < /home/admi/test.log

-s参数后面跟的是邮件的主题;-c参数接的是抄送的地址,如果有多个抄送地址则要用双引号引起来,当然-c这个参数可以不要;往后hi@email.com是主邮件地址;再往后接的是邮件正文,你可以直接随便打一些字符串上去,也可以像上面那样用" < /home/admi/test.log "表示将test.log文件里面的内容当作正文发邮件出去。

更详细用法网搜。


貌似mutt发邮件更强大?今天试了下mail命令-a参数的附件功能,一直卡住发不出去邮件,不知啥原因,用mutt也是-a参数发带附件的邮件一下子就好了,貌似mutt快捷?附一个mutt的使用方法链接: linux shell发送带附件的邮件


2017-11-09 09:20:49 songyimin1208 阅读数 322
  • 定时器、看门狗和RTC-1.9.ARM裸机第九部分

    本期课程主要讲述SoC中的时间相关的外设,包括定时器、看门狗定时器和实时时钟RTC。首先讲述了定时器的基本概念,然后以PWM定时器为例详细讲解了定时器的使用及编程细节;看门狗定时器部分详细讲了看门狗的意义和常规工作形式;后2节课讲了RTC的概念、框图和编程方法

    7303 人正在学习 去看看 朱有鹏
	struct itimerval t;
	fflush(stdout);
	setvbuf(stdout,NULL,_IONBF,0);
	t.it_interval.tv_usec =20000;
	t.it_interval.tv_sec = 0;
	t.it_value.tv_usec =20000;
	t.it_value.tv_sec = 0;
	if( setitimer( ITIMER_REAL, &t, 0) < 0 ){
	printf("set");
	return -1;
	}
	signal( SIGALRM, my_alarm_handler );

void my_alarm_handler()

{}

2015-11-25 13:52:21 jayceyxc635 阅读数 20
  • 定时器、看门狗和RTC-1.9.ARM裸机第九部分

    本期课程主要讲述SoC中的时间相关的外设,包括定时器、看门狗定时器和实时时钟RTC。首先讲述了定时器的基本概念,然后以PWM定时器为例详细讲解了定时器的使用及编程细节;看门狗定时器部分详细讲了看门狗的意义和常规工作形式;后2节课讲了RTC的概念、框图和编程方法

    7303 人正在学习 去看看 朱有鹏

Linux配置定时任务

在Linux下的两种定时执行任务的方法:at命令,以及crontab服务。

at命令

假如我们只是想要让特定任务运行一次,那么,这时候就要用到at监控程序了。

 

设置at命令很简单,指示定运行的时间,那么就会在哪个时候运行。at类似打印 进程,会把任务放到/var/spool/at目录中,到指定时间运行它 。at命令相当于另一个shell,运行at time命令时,它发送一个个命令,可以输入任意命令或者程序。at now + time命令可以在指示任务。

 

假设处理一个大型数据库,要在别人不用系统时去处理数据,比如凌晨3点10分。那么我们就应该先建立/home/kyle/do_job脚本管理数据库,计划处理/home/kyle/do_job文件中的结果。正常方式是这样启动下列命令:

 

# at 2:05 tomorrow

 

at>/home/kyle/do_job

 

at> Ctrl+DAT Time中的时间表示方法

 

-----------------------------------------------------------------------

 

时 间 例子 说明

 

-----------------------------------------------------------------------

 

Minuteat now + 5 minutes任务在5分钟后运行

 

Hour at now + 1 hour 任务在1小时后运行

 

Days at now + 3 days 任务在3天后运行

 

Weeks at now + 2 weeks 任务在两周后运行

 

Fixed at midnight 任务在午夜运行

 

Fixed at 10:30pm任务在晚上10点30分注意:一定要检查一下atq的服务是否启 动,有些操作系统未必是默认启动的,linux默认为不启动,而ubuntu默认为启动的。检查是否启动,用service atd检查语法,用service atd status检查atd的状态,用service atd start启动atd服务。

 

查看at执行的具体内容:一般位于/var/spool/at目录下面, 用vi打开,在最后一部分就是你的执行程序。

 

crontab

cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

 

/sbin/service crond start//启动服务

 

/sbin/service crond stop //关闭服务

 

/sbin/service crond restart //重启服务

 

/sbin/service crond reload//重新载入配置

 

/sbin/service crond status//查看服务状态你也可以将这个服务在系统启 动的时候自动启动:

 

在/etc/rc.d/rc.local这个脚本的末尾加上:

 

/sbin/service crond start现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:

 

直接用crontab命令编辑

 

cron服务提供 crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

 

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

 

crontab -l //列出某个用户cron服务的详细内容

 

crontab -r //删除某个用户的cron服务

 

crontab -e //编辑某个用户的cron服务比如说root查看自己的cron设置:crontab -u root -l

 

再例如,root想删除fred的cron设置:crontab -u fred -r

 

基本格式 :

 

*****command

 

分  时  日  月  周  命令

 

第1列表示分钟1~59 每分钟用*或者 */1表示

 

第2列表示小时1~23(0表示0点)

 

第3列表示日期1~31

 

第4列表示月份1~12

 

第5列标识号星期0~6(0表示星期天)

 

第6列要运行的命令

crontab文件的一些例子:

 

#每晚的21:30重启apache。

 

30 21 * * * /usr/local/etc/rc.d/lighttpd restart

 

#每月1、10、22日

 

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

 

#每天早上6点10分

 

10 6 * * * date

 

#每两个小时

 

0 */2 * * * date

 

#晚上11点到早上8点之间每两个小时,早上8点

 

0 23-7/2,8 * * * date

 

#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

 

0 11 4 * mon-wed date

 

#1月份日早上4点

0 4 1 jan * date

 

值得注意的是,在crontab中,无论是命令还是文件的路径都要写全,否则不认。

比如要每天6点执行一个/home/run/test.sh的脚本,可以配置如下:

0 6 * * * /sbin/sh /home/run/test.sh 

或者

0 6 * * * cd /home/run && /bin/sh test.sh

这里需要注意的是,test.sh脚本中的命令也需要使用全路径,否则crontab找不到的。

 如果还想有一些其他的需求,比如保留输出可以将输出重定向,与正常的脚本运行没有区别

 

0 6 * * * cd /home/run && /bin/sh test.sh > log
2018-12-08 09:08:24 NignSah 阅读数 164
  • 定时器、看门狗和RTC-1.9.ARM裸机第九部分

    本期课程主要讲述SoC中的时间相关的外设,包括定时器、看门狗定时器和实时时钟RTC。首先讲述了定时器的基本概念,然后以PWM定时器为例详细讲解了定时器的使用及编程细节;看门狗定时器部分详细讲了看门狗的意义和常规工作形式;后2节课讲了RTC的概念、框图和编程方法

    7303 人正在学习 去看看 朱有鹏

PS:如果没有安装需要先安装并开启
crontab -u hr列出hr用户的cron任务
crontab -l列出当前用户cron服务的详细内容
crontab -u mk -l列出mk用户cron服务的详细内容
crontab -r删除cron任务
crontab -e编辑cron任务

2016-02-01 09:25:00 hw1287789687 阅读数 19
  • 定时器、看门狗和RTC-1.9.ARM裸机第九部分

    本期课程主要讲述SoC中的时间相关的外设,包括定时器、看门狗定时器和实时时钟RTC。首先讲述了定时器的基本概念,然后以PWM定时器为例详细讲解了定时器的使用及编程细节;看门狗定时器部分详细讲了看门狗的意义和常规工作形式;后2节课讲了RTC的概念、框图和编程方法

    7303 人正在学习 去看看 朱有鹏

linux 定时器

(1)实例

[root@iZ25tti3rxdZ log]# crontab -l

*/30 * * * * /home/whuang/software/auto_start_tomcat.sh

解说:

每隔30分钟执行,是从整点开始计时,1:30,2:00,2:30,3:00,3:30......

 

(2)定时器用在什么场合

比如有莫名其妙的进程启动,但是不知道是如何启动的.

那么可以增加定时器,每10分钟杀死进程

例如:

执行crontab -e

增加:

*/30 * * * * /home/whuang/software/auto_start_tomcat.sh

在脚本auto_start_tomcat.sh :

ps -ef |grep "/usr/bin/acpid" |grep -v grep |awk -F" "  {'print $2'}|xargs -i kill -9 {}

ps -ef |grep "/usr/bin/bsd-port/agent" |grep -v grep |awk -F" "  {'print $2'}|xargs -i kill -9 {}

ps -ef |grep "/usr/bin/.sshd" |grep -v grep|awk -F" "  {'print $2'}|xargs -i kill -9 {}

ps -ef |grep "/root/.l" |grep -v grep|awk -F" "  {'print $2'}|xargs -i kill -9 {}

ps -ef |grep "/mnt/linsx" |grep -v grep|awk -F" "  {'print $2'}|xargs -i kill -9 {}

 

ps -ef |grep "getty" |grep -v grep|awk -F" "  {'print $2'}|xargs -i kill -9 {}

 

(3)crontab的用法

 

57 14 15 * * /home/whuang/expect/a.sh

每月的15号,1457分执行脚本 /home/whuang/expect/a.sh

 

7 15 15 9 * /home/whuang/expect/a.sh

9月的15号,157分执行脚本 /home/whuang/expect/a.sh

 

 

17 15 16 9 * /home/whuang/expect/a.sh

9月的16号,1517分执行脚本 /home/whuang/expect/a.sh

 

*/1 * * * * echo abc>>/home/whuang/expect/a.txt

每分钟执行一次

 

0 */2 * * * echo “Have a break now.” >> /tmp/test.txt

每两小时执行一次

 

*/1 * * * * /home/whuang/software/auto_start_tomcat.sh

 

每隔一分钟就执行指定脚本

 

 

 

 

 

 

 

linux应用层定时器

阅读数 513

Linux定时任务详解

阅读数 223

Linux定时任务详解

博文 来自: qq_45058939

linux定时任务

阅读数 169

linux 定时任务

博文 来自: a0601017180
没有更多推荐了,返回首页