网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > linux > 新手入门 > 软件使用 > Linux 技巧: 用cron 和at 调度作业  

Linux 技巧: 用cron 和at 调度作业

2007-10-10  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

  系统管理员需要在系统负载低的午夜运行作业,或者需要每天或每月运行作业,同时又不愿意牺牲睡眠时间或假期。调度任务的其他原因包括自动执行日常任务或者确保每次都以相同的方式处理任务。本文帮助您使用 cron 和 at 功能调度作业定期运行或在指定的时间运行一次。 网管有家bitscn.net

  Linux和 UNIX系统允许调度任务在以后执行一次,或者重复运行。本文是从 developerWorks 教程 “LPI 102 考试准备:管理任务” 摘录的,讲解如何调度作业定期运行,或在指定的时间运行一次。

网管朋友网www_bitscn_net

  在 Linux 系统上,许多管理任务必须频繁地定期执行。这些任务包**转日志文件以避免装满文件系统、备份数据和连接时间服务器来执行系统时间同步。上面提到的教程更详细地介绍了这些管理任务。在本文中,学习 Linux 中提供的调度机制,包括 cron 和 anacron 设施以及 crontab 和 at 命令。即使系统常常关机,anacron 也可以帮助调度作业。

网管网www_bitscn_com

  以一定的时间间隔运行作业

网管bitscn_com

  以一定的时间间隔运行作业需要使用 cron 设施进行管理,它由 crond 守护进程和一组表(描述执行哪些操作和采用什么样的频率)组成。这个守护进程每分钟唤醒一次,并通过检查 crontab 判断需要做什么。用户使用 crontab 命令管理 crontab.crond 守护进程常常是在系统启动时由 init 进程启动的。

网管u家u.bitscn@com

  为了简单,假设希望定期运行清单 1 所示的命令。这个命令实际上只报告日期和时间,其他什么事都不做,但是它可以说明如何使用 crontab 设置 cron 作业,而且还可以通过输出看到作业运行的时间。设置 crontab 条目需要一个包含转义的 shell 元字符的字符串,所以适合于简单的命令和参数。在这个示例中,将从脚本 /home/ian/mycrontab.sh 运行 echo 命令,这个脚本不需要参数。 这可以减少处理转义字符的工作。

网管u家bitscn.net

  清单 1. 一个简单的命令示例 网管联盟bitsCN@com

[ian@lyrebird ~]$ cat mycrontest.sh
#!/bin/bash
echo "It is now $(date +%T) on $(date +%A)"
[ian@lyrebird ~]$ ./mycrontest.sh
It is now 18:37:42 on Friday 网管u家u.bitsCN.com 
网管联盟bitsCN_com

  创建 crontab

网管有家www.bitscn.net

  使用 crontab 命令和 -e(表示 “edit”)选项创建 crontab.这会打开 vi 编辑器,除非在 EDITOR 或 VISUAL 环境变量中指定了另一种编辑器。

中国网管联盟bitsCN.com

  每个 crontab 条目包含六个字段:

网管u家bitscn.net

  分钟 网管下载dl.bitscn.com

  小时 网管朋友网www_bitscn_net

  日 网管朋友网www_bitscn_net

  月 网管论坛bbs_bitsCN_com

  星期 网管朋友网www_bitscn_net

  由 sh 执行的字符串

中国网管论坛bbs.bitsCN.com

  分钟和小时的范围分别是 0-59 和 0-12,日和月的范围分别是 1-31 和 1-12.星期的范围是 0-6,0 表示星期日。星期也可以指定为 sun、mon、tue 等等。第 6 个字段包含前 5 个字段之后的所有内容,它是要传递给 sh 的字符串。百分号(%)将转换为空行,所以如果要使用 % 或其他任何特殊字符,就要在前面加上反斜线()。第一个 % 之前的一行传递给 shell,这个 % 之后的所有行都作为标准输入传递。 网管有家www.bitscn.net

  各个与时间相关的字段可以指定一个单独的值、值的范围(比如 0-10 或 sun-wed)或者以逗号分隔的单独值和范围列表。

中国网管论坛bbs.bitsCN.com

  清单 2 给出一个 crontab 条目示例

网管有家www.bitscn.net

0,20,40 22-23 * 7 fri-sat /home/ian/mycrontest.sh 网管u家bitscn.net 

网管网www.bitscn.com

  在这个示例中,我们的命令在 7 月的每个星期五和星期六晚上 10 点到午夜之间的第 0、20、40 分钟(每 20 分钟)执行。关于指定时间的其他方式的细节,参见 crontab(5) 的手册页。

网管u家u.bitscn@com

网管u家bitscn.net

TAGs   调度   作业   技巧   命令   运行   crontab   at   使用   清单   文件      
 上一篇:Linux下使用Gtodo规划你的任务   下一篇:Ubuntu Linux 7.04系统安装并使用Proftp
Linux 技巧: 用cron 和at 调度作业 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: