linux下的周期性任务(任务计划)-阅linux系统管理技术整理

周期性进程(任务计划)

任务计划:在未来的某个时间点,执行某个或一系列任务。执行结果会以邮件的形式发送给管理员

当cron启动的时候,他会读取配置文件,把它们保存在内存中,然后,转入睡眠状态。每一分钟,croon会醒来一次,检查crontab文件的修改时间。重新载入任何被改过的文件,然后在返回睡眠状态,执行这一分钟安排的任务。

1、配置文件:crontab,是cron table的缩写
cron在三个地方查找文件,/var/spool/cron,/etc/cron.d,/etc/crontab,每个用户的crontab文件都存放在/var/spool/cron目录下。一个用户对应一个文件。而系统用户的则放在/etc/cron.d或/etc/crontab下

2、系统的cron任务
    在/etc/cron,/etc/cron.d下配置,这是有系统管理员分配的,这两个目录时平行的关系。

3、其他普通用户的任务
    会在/var/spool/cron下生成该普通用户的用户名对应的一个以用户名命名的文件。

4、crontab文件的格式
minute hour day month weekday [username] command
分钟    小时     天    月    周        用户    所执行的命令

分钟:1-59
小时:1-23
天:1-31
月:1-12
周:0-6(0为星期天)

每个和时间相关的字段可以有(时间通配符):
*      :可以代表所有的
-      :[1-5]分钟,可以代表一个范围
,       :逗号隔开,表示不连续的多个时间点
整数 :则精确匹配
/#    :对应的范围内每多久一次,20 /2 * * 1,周一的每两个小时,每隔20分钟执行一次

实例:
1、45     10     *     *     1-5
    从周一到周五,上午10.45
2、0,30    *     13     *     5    
    weekday和day都指定,满足两个条件中的一个即可。
    上面的则代表:星期五的每半个小时,也可以为每月13号的每半个小时
3、30     2     *     *     1     (cd /users/joe/project; make)
    每周一的凌晨2.30,会在/users/joe/project目录下运行make
4、20     1     *     *     * find /tmp -atime +3 -exec rm -f { } ‘;‘
    每天的1.20,删除/tpm目录下,3天没有被访问的文件

crontab管理

crontab的所有操作都是对当前用户而言:

crontab -l:列出当前用户的任务
crontab -e:编辑某个任务(以当前用户的身份),也可用于新建任务
crontab -r:移除所有任务
crontab -u username:管理其他用户

用/etc/cron.allow和/etc/cron.deny这两个配置文件可以指定哪些用户可以提交crontab文件。

ls /etc/cron*
cron.hourly/  cron.weekly/   cron.daily/   cron.monthly/

这四个目录下有相应的程序,它们会在相应的时间运行(有后缀名可知),这是系统自己的周期性任务

cron的常见用途
1、清理文件系统

find / -xdev -type f ‘(‘ -name core -o name ‘core.[0-9]*‘ ‘)‘ -atime +7 -exec rm -f { } ‘;‘

删除一个星期中都没有被访问的core映像文件。
-xdev:确保find命令不会执行到根文件系统以外的文件系统中去。
-type f:linux内核源代码包括一个目录也叫做core,不应该删除它。

find / -xdev -atime + 3 ‘(‘ -name ‘#*‘ -o -name ‘.#*‘ -o -name ‘*.CKP‘ -o -name ‘*~‘ -o -name ‘.nfs*‘ ‘)‘ -exec rm -f { } ‘;‘

删除哪些用#、.#或者.nfs开头的文件或以~以及.CKP结尾且三天没有被访问的文件

cd /tmp; find . ! -name . ! -name lost+found -type d -mtime +3 -exec /bin/rm -rf { }
 ‘;‘

递归删除/tmp下在72小时内没有被修改过的所有子目录

其他的日程安排程序:ANACRON
anacron:cron的补充,弥补了cron应系统当机或机器时间出现不连续的情况而没有执行到相应的命令。

时间: 2025-01-02 02:54:42

linux下的周期性任务(任务计划)-阅linux系统管理技术整理的相关文章

Linux下C编程-----IO/文件操作 模拟linux ls程序显示文件系统树形结构(2)

Linux下的IO/文件操作练习,知识虽然简单 但是往往基础容易被忽略,偶尔的练习是有必要的. 练习printf /************************************************************************* > File Name: printf.c > Author: > Mail: > Created Time: Wed 11 Feb 2015 01:08:15 AM PST ***********************

(转载)linux下的僵尸进程处理SIGCHLD信号Linux环境进程间通信(五): 共享内存(下)

Linux环境进程间通信(五): 共享内存(下) 在共享内存(上)中,主要围绕着系统调用mmap()进行讨论的,本部分将讨论系统V共享内存,并通过实验结果对比来阐述两者的异同.系统V共享内存指的是把所有共享数据放在共享内存区域(IPC shared memory region),任何想要访问该数据的进程都必须在本进程的地址空间新增一块内存区域,用来映射存放共享数据的物理内存页面. 系统调用mmap()通过映射一个普通文件实现共享内存.系统V则是通过映射特殊文件系统shm中的文件实现进程间的共享内

1.5在linux下新增大于2T的硬盘在linux下挂载操作

一.安装硬盘到物理机上.(略) 二.查看硬盘是否正确安装. 使用"fdisk -l"命令查看硬盘代号. 可以看到我新增了的硬盘标识为sdb. 三.将硬盘分区. 1.当硬盘小于等于2T时,可以用fdisk. [[email protected] ~]#fdisk /dev/sdb 1.查看帮助. 输入:m 2.新建分区. 输入:n 3.创建逻辑分区 输入:p 4.输入分区号以及指定分区大小 依照提示,回车表示默认. 5.删除分区 输入:d 6.修改分区的类型 输入:t选分区号,然后列出:

在linux下部署项目所用到的基本linux命令

2017-03-23: 所有命令可以使用   ** --help 查看帮助 cd --> change directory 功能:切换目录 格式:cd [目录] 用法 cd ~    当前用户目录 cd /     根目录 cd ..    上一级目录 cd -     上一次访问的目录  (回退到上一次访问的目录) cd        如果是缺省的,会和 ~ 一样 进入当前用户目录 cd 目录名   进入当前目录的某个子目录 ls   -->  list 功能:列出目录内容 格式:ls [参

将Linux下编译的warning警告信息输出到文件中[整理笔记]

Linux中,脚本语言环境中,即你用make xxx即其他一些普通linux命令,比如ls,find等,不同的数字,代表不同的含义: 数字 含义 标准叫法0 标准输入  stdin = standard input1 标准输出  stdout = standard output2 标准错误输出  stderr = standard error 而系统默认的stdin,stdout,stderr,都是屏幕,所以,当你执行命令,比如make,后,所输出的信息,都是可以在屏幕上看到的.所以,想要将对应

linux下自有服务

一.远程管理Linux服务器 1.windows下远程连接工具 xshell secureCRT putty 2.windows下文件传输工具 Filezilla winSCP 二.远程连接服务端和客户端 1.了解客户端,服务端 IP+Port访问服务 2.了解端口号的设定 1~255 一般是知名端口号 256~1023 一般是有Unix占用来提供特定的服务 1024~5000 客户端的临时端口,随机产生 大于5000 为互联网上的其他服务器 3.了解ssh的作用 用于linux下远程连接登录管

Linux下的经典软件-史上最全

前言 从2012年接触Linux系统以来就被Linux系统所吸引,2个月后便完全抛弃了Windows.在这2年的时间里,我尝试了很多Linux发行版: Gentoo, Fedora, Ubuntu, Debian等.在这些系统中又尝试了很多种软件,这里根据自己的使用经验并结合网上的一些资料,对Linux下常用的软件进行整理,供大家参考,希望能帮助到大家.每款软件都有它的优缺点,适合自己的才是最好的.在这篇文章中我是按自己的喜好推荐给大家或者进行排序的,并不是说它们就是最好的,其它的就不行.建议大

Linux下定时执行脚本(转自Decode360)

文章来自:http://www.blogjava.net/decode360/archive/2009/09/18/287743.html Decode360's Blog  老师(业精于勤而荒于嬉 QQ:150355677 MSN:[email protected]) 菜鸟表示不会写shell脚本,但还是能够看懂的,昨天因为传了太多数据,结果namenode进入了safe mode,然后小伙伴赶紧就暂停了每天早晨4点自动执行的数据合并压缩和传输的脚本,今天我自己准备改,才发现这篇博文. 先说说

linux下的python基本介绍

[python]linux下的python安装及初步学习 linux下python的安装 尽管我的unbuntu 10.11版本已经默认更新了python的安装,但这里还是重新介绍一下如何在linux下安装   python.在网上也有一些安装教程. 摘来如下 1.下载源代码 http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tar.bz2 2. 安装 $ tar –jxvf Python-2.5.2.tar.bz2 $ cd Python-