Linux周期性任务计划

一、周期性任务计划类型:

1、一次性的任务执行(at,batch )--不重要:

A、at:

交互式:让用户在at>提示符下输入多个要执行的命令。

如:#at 10:02,进入at命令提示符,如下:

#at > ls /usr/local

#at > cat /etc/passwd

#提交任务:ctrl+d

#查看任务计划列表:at -l

#删除一个尚未执行作业的方法:at -d job_num或者atrm job_num

批处理:将任务的各命令写入文件,由at进行调用,格式:at -f /path/to/at_job_file TIME

如: #at -f at.txt 15:22 ,其中at.txt的内容如下:

ls /usr/local

cat /etc/passwd

任务计划的执行结果:通过邮件的方式发送给任务提交者。可以通过mail命令查看邮件。

B、batch:与at不同,不能指定时间,它自动选择系统空闲时执行。

2、周期性的任务执行(crontab、anacron)--重要:

A、系统cron:通常定义在/etc/crontab中。比如,定时删除tmp目录下的文件。

#cat /etc/crontab,每行定义一个独立的任务,具体内容如下:

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name command to be executed

B、用户cron:通常定义在/var/spool/cron/UserName中。

使用crontab命令实现用户cron:

-l :查看自己的cron任务列表

-e :通过EDITOR变量中定义的编辑器打开用户自己的cron配置。

如:#crontab -e,定义内容如下:

*/5 * * * * /bin/echo "hello cron"

-r :移除用户的crontab

如果是管理员:

-u UserName :为别的用户配置crontab任务。

如:#crontab -e -u hadoop 为hadoop用户配置其任务。

注意1:在cron中定义的要执行的命令,如果不适用类似/etc/crontab中的PATH,必须使用命令的绝对路径。

*/5 * * * * /bin/echo "hello cron" &>/dev/null

注意2:如果crontab编辑文件中,如果有%,请转移\%或者用单引号,否则无法执行。

0 */3 * * * /bin/touch ~/testfile_`date +\%Y-\%m-\%d`.txt

0 */3 * * * /bin/touch ~/testfile_`date +‘\%Y-\%m-\%d‘`.txt

注意3:如果不想接收邮件,可以通过重定向或者MAILTO="" ,如果不想法建议用重定向。

*/5 * * * * /bin/echo "hello cron" &>/dev/null

例:每天 6 9 12 点,查看一下当前系统关在的所有文件系统,并将查看的结果追加到/tmp/mounts.txt文件中。

0 6,9,12 * * * /bin/mount >> /tmp/mounts.txt

注意4:比每的那个单位小的一定要给具体的值,这个值有自己来定。

例:每天每两小时取当前系统内存空间余量,并将其保存至/stats/memory.txt文件中。

0 */2 * * * /bin/grep "^MemFree"/proc/meminfo >>  /stats/memory.txt

注意5:实现秒级别的任务(因为任务的最小时间为分钟)

例:每10秒钟执行一次echo "hello cron"

* * * * * for i in {0..4};do /bin/echo "hello cron "; sleep 10; done

C、时间表示法:

a、每个时间位都应该使用其可用的有效范围内的值。

b、某时间位上的*表示对应位的有效取值。

c、-:连续的时间点,如30-35 7 * * * 每天的7点30-35分执行,每分钟执行一次。

d、,:离散的时间点取值,如:5,15,25,35 * * * 每小时的5 15 25 35分钟执行一次。

e、/#:在指定时间范围内,每隔#执行一次。如:0/20 * * * 每20分钟执行一次;3-55/3 * * * 在3-55分之间每三分钟执行一次。

D、anacron:是cron的一种补充,能够有效的去检查cron中某任务在过去某个周期内尚未执行的任务,

在开机后某个时间点去尽快执行一次。这个执行的时间点是在/etc/anacrontab中定义的。

#cat /etc/anacrontab ,内容如下:

SHELL=/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

# the maximal random delay added to the base delay of the jobs

RANDOM_DELAY=45

# the jobs will be started during the following hours only

START_HOURS_RANGE=3-22

#period in days   delay in minutes   job-identifier   command

1 5 cron.daily nice run-parts /etc/cron.daily,某个周期内尚未执行的任务,在开机后5分钟执行

7 25 cron.weekly nice run-parts /etc/cron.weekly,某个周期内尚未执行的任务,在开机后25分钟执行

@monthly 45 cron.monthly nice run-parts /etc/cron.monthly,某个周期内尚未执行的任务,在开机后45分钟执行

二、mail命令:列出邮件列表。用quit退出邮件。

1、通过-s 指定主题subject,并将文件/path/to/somefile中的内容作为邮件内容,发送给userName。

#mail -s "Subject" userName < /path/to/somefile

2、通过-s 指定主题subject,发送给用户,并在>在输入邮件内容,通过ctrl+d提交邮件。

#mail -s "Subject" userName

时间: 2024-10-12 06:33:38

Linux周期性任务计划的相关文章

Linux周期性任务计划详解

一次性任务执行: at,batch at: 交互式:让用户在at>提示符输入多个要执行命令: 批处理:将任务的各命令写入文件由at进行调用: 使用格式: at TIME at > Ctrl+d:提交任务 at作业有队列:使用单个字母表示 查看作业:at -l =atq [[email protected] ~]# at 10:46 at> ls -ld /etc at> <EOT> job 1 at 2015-08-25 10:46 [[email protected]

linux周期性任务计划 at及cron的简单总结

一次性任务计划:at,batch 周期性任务计划:cron at:简单用法 at TIME at> 提交任务:^c+d 作业结果:以邮件形式发送系统上的当前用户 邮件收发: 服务启动与否状态查看命令: netstat -tnl |grep ":25" 默认收发邮件仅在本机上的用户间进行,且只能通过回环接口上的地址进行. # mail q:退出 N:查看第N封邮件 发邮件给指定用户(系统内): # mail USERNAME[@HOSTNAME] -s "SUBJECT&

周期性任务计划详解

linux周期性任务计划: 相关命令 未来的某时间点执行一次某任务:at命令, batch命令. 周期性运行某任务:crontab命令 执行结果:会通过邮件发送给用户 查看linux的邮件端口是否开启: 25号端口是 smtp #简单邮件传输协议(SMTP) [centos@web ~]$ ss -tnl | grep '25' \LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 100 ::1:25 :::* [centos@web ~]$ netstat -tnl

Linux自学笔记——Linux周期性计划任务

未来的某时间点执行一次任务:at,batch 周期性运行某任务:crontab 执行结果:会通过邮件形式发送给用户: 本地邮件服务: smtp:simple mail transmission protocol: pop3:post office procotol: imap4:internet mail access procotol: mail命令: mailx - send and receive Internet mail: MUA:mail user agent,用户收发邮件的工具程序

Linux中如何设置 at 一次性任务和 crontab 周期性任务计划

首先来看如何设置一次性任务,命令格式为:at [HH:MM] [yyyy-mm-dd]: 查看一次性任务计划的命令为:" atq " 删除一次性任务计划的命令格式为:" atrm [任务编号]" 设置周期性任务计划 以上命令选项 -u 为可选项 下面来设置一条周期性任务计划,每隔三天的22:30备份一次 /etc/ 为 /tmp/test.tar.gz 原文地址:http://blog.51cto.com/14154700/2352117

Linux进程和计划任务

内核的功用:进程管理.文件系统.网络功能.内存管理.驱动程序. 安全功能等 进程管理: 系统优先级:数字越小,优先级越高    实时优先级: 99-0,值最大优先级最高    nice值:-20 到19 ,对应系统优先级100-139或99 Linux 内核:抢占式多任务          进程类型:                     守护进程: daemon, 在系统引导过程中启动的进程,和终端无关进程                     前台进程:跟终端相关,通过终端启动的进程 

Linux进程与计划任务

Linux进程与计划任务 linux进程及作业管理 进程 内核的功用:进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等特权操作模式切换(理想状态):70%CPU时间用户模式+30%CPU时间内核模式进程(Process):是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的存在生命周期的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在当代面向线程设计的计算机结构中,进程是线程的容器.程序是指令.数据及其组织形式的描述

Linux下的计划任务和日志管理

Linux下的计划任务和日志管理   一:实验环境: 1:虚拟机 2:两个linux系统 二:实验目标 1:at 定制单次执行的计划任务 2:cron定制周期性计划任务 3:配置脚本实现周期性任务 4:配置公司内网服务器每天自动开关机 5:Linux系统日志记录规律 6:自定义日志记录方式 7:配置远程收集日志服务器 三:实验步骤 1):at 定制单次执行的计划任务 第一块 at 定制单次执行的计划任务 前提:服务:atd  必须开启 #查询atd是否运行,只有运行,才能工作. [[email 

Linux学习之计划任务(at、batch、vrontab)篇

Linux学习之任务计划(at.batch.vrontab)篇 一.linux上的任务计划 1.分类 linux上的任务计划可以分为两类: a.周期性执行的任务计划 crontab b.后续时间一次性执行的计划 at.batch 2.电子邮件服务 电子邮件服务使用到的几个协议: smtp:simple mail transmission protocol pop3:post office protocol imap4:internet mail access protocol 没个用户的都有一个