Debian定时任务管理(cron crontab at)

本文详细介绍了Linux系统中的at命令使用方法,包括如何设置定时任务、查看已设置的任务及取消任务等操作。文章还提供了实例,演示了如何利用at命令在特定时间执行备份数据库的任务。
转自:http://forum.upsdn.net/index.php?prog=topic::threaded&pid=6022

at的计划任务是放在/var/spool/at

1)如果有/etc/at.allow,则只有在这个列表中的人才可使用at,否则不能使用
(即使存在at.deny,并且你不在at.deny中,如果at.allow中没有你,你也不能使用at)

2)如果没有/etc/at.allow 就寻找 /etc/at.deny ,在这个黑名单中的都不能执行,其他的人能执行

3) 如果前面两个文件都不存在,则只有root能执行

命令使用

at [-m] TIME



-m 命令完成后,发送email通知

TIME 有几种时间格式

HH:MM 比如 08:30 今天早上8点半 执行,如果现在已经是9点了,则在明天的早上8点半 执行

HH:MM YYYY-MM-DD 比如 08:30 2006-11-11 2006年光棍节的早上8点半执行,也就是明天 

HH:MM[am|pm] [Month] [Date] 12小时制,英文字母年月  比如: 08am Novermber 11


HH:MM[am|pm] + number [minutes|hours|days|weeks]
比如  now + 5 minutes
    或者 04pm + 3 days


实作

我的 sohon 狗屎主机只能在凌晨备份数据库,我想把备份的数据库拖到Dreamhost的主机上
所以,我想要  dreamhost 明天8点的时候 开始用 wget 将备份的数据库下载下来


$ at 08:00 2006-11-11
warning: commands will be executed using /bin/sh
at> cd /home/idc/sohon20061111
at> ../wget --no-passive-ftp -m -c -nH -b -o upsdn_ftp.log ftp://webmaster%40upsdn.net:mypassword@61.152.251.216/
at> < EOT >
job 20497 at 2006-11-11 08:00



注意 at> < EOT > 这里,  出现at>命令提示符号后,按 Ctrl+D 表示结束,并自动出现 字样


命令执行的标准输出和错误输出都会发送到使用者的mailbox 里面


atd命令执行  独立于使用这的bash 环境,dreamhost默认是sh, 瞧,上面都有警告

===================================
要是发现刚才输入的at命令不对, 还有改悔的机会,这就是使用atq 和atrm
(at -l 相当于 atq, 实际上atq, atrm都是一个到at的符号连接, 这种情况很普遍)


atq (at query) 查询当前有什么计划任务

$ atq
20497 2006-11-11 08:00 a idcenter


2006年光棍节的上午8点有一个idcenter用户 的计划任务要执行,其任务编号是 20497

查询这个任务到底怎么执行的

$ at -c 20497
#!/bin/sh
# atrun uid=956391 gid=239569
# mail idc 0
umask 2
SSH_CLIENT=208.197.137.208/ 46609/ 22; export SSH_CLIENT
SSH_TTY=/dev/pts/7; export SSH_TTY
USER=idc; export USER
MAIL=/home/idcenter/Maildir/; export MAIL
PATH=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games; export PATH
LC_COLLATE=C; export LC_COLLATE
PWD=/home/idcenter/sohon20061111; export PWD
LANG=en_US; export LANG
PS1=[//h]/$/ ; export PS1
SHLVL=1; export SHLVL
HOME=/home/idcenter; export HOME
LANGUAGE=en_US:en_GB:en; export LANGUAGE
LOGNAME=idcenter; export LOGNAME
SSH_CONNECTION=208.197.137.208/ 46609/ 208.97.168.116/ 22; export SSH_CONNECTION
OLDPWD=/home/idc; export OLDPWD
cd /home//.furstenberg/idcenter/sohon20061111 || {
echo 'Execution directory inaccessible' >&2
exit 1
}
cd /home/idcenter/sohon20061111
../wget --no-passive-ftp -m -c -nH -b -o upsdn_ftp.log ftp://webmaster%40upsdn.net:mypassword@61.152.251.216/




如果我要删除这个工作,只需要键入

$atrm 20497


就可以了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值