Chinaunix首页 | 论坛 | 博客
  • 博客访问: 327255
  • 博文数量: 82
  • 博客积分: 1530
  • 博客等级: 上尉
  • 技术积分: 771
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-16 03:44
文章分类

全部博文(82)

文章存档

2011年(6)

2010年(76)

我的朋友

分类: LINUX

2010-05-28 02:42:57

8、1cron:按时间表执行命令
linux下,周期执行的任务一般由cron这个守护进程来处理。cron在系统引导时启动,读取一个或者多个配置文件。
cron的配置文件称为“crontab”,在三个地方查找crontab文件。
/var/spool/cron
/etc/cron.d
/etc/crontab
每个用户的crontab文件都保存在/var/spool/cron目录下。一般而言,一个用户最多有一个crontab文件,crontab文件是以他们所属用户的登录名来命名的。
负责安排由系统管理员指定的系统维护以及其他任务的crontab文件都保存在/etc/crontab文件以及/etc/cron.d目录下的其他文件。一般而言,/etc/crontab供管理员手工维护,而/etc/cron.d目录则提供一个地方,软件包把它们可能需要的任何crontb项安装在这里。

8、2crontab文件的格式
下面是命令的语法:
minute hour day month weekday [username] command
username字段只出现在/etc/crontab文件和/etc/cron.d目录下

cron使用百分号%来表示command字段中的换行。只有第一个百分号之前的文本才会包含在实际命令中,其余行则作为该命令的标准输入。
例子:
echo The time is now 'date' > /dev/console
mail -s Reminder evi$anchor & Don't forget to write your chapter
cd /etc; /bin/mail -s "Password file" evi < passwd

30 2 * * 1 (cd /users/joe/peotect; make)

20 1 * * * find /tmp atime + 3 -exec rm -f {} ';'
这条命令将在每天凌晨1:20删除在/tmp目录中3天没有被人访问的文件


8、3crontab管理
用/etc/cron.allow 和 /etc/cron.deny 这两个配置文件可以指定哪些用户可以提交crontab文件。
重要的是,访问控制是由crontab而不是cron来实现的,如果某个用户能够通过其他方式把crontab文件秘密的转移到合适的目录中去,那么cron也会盲目执行。

8、4cron的常见用途
清理文件系统:
下面是采用find命令的几个惯用法
find / -xdev type f '(' -name core -o name 'core[0-9]*'' ')' atime +7 -exec rm -f () ';'
这个命令将删除那些在一个星期中没有被访问的core映像文件。-xdev参数确保find不会执行到根文件系统之外的文件系统。

cd /tmp; find . ! -name . ! -name lost+found -type d -mtime +3 -exec /bin/rm -rf {} ';'
这条命令将递归删除/tmp下72小时之内没有被修改过的所有子目录。

问题:那一堆乱七八糟的单引号是什么意思?


习题:
以du、sort和head命令,编写一个脚本,确定系统上最大的10个主目录。在每周一的夜里12:00执行这个脚本,并且把输出结果发给你。提示:要用到按数字逆序排序

0 0 * * * (cd /~; du -a | sort -rn | head)
sort的n选项表示结果按大小顺序排序

阅读(1129) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~