linux at 计划任务,oracle 定时任务

很多朋友对于linux at 计划任务和oracle 定时任务不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

如何在Linux中实现计划任务

对于系统管理员而言,做系统备份是一个系统管理员非常重要的工作,但是每天重复的工作是一件非常繁琐的工作,那有没有一种方法可以让系统每天每到固定的时间都自己做备份工作呢?答案是有的,那就是计划任务,现在我们就来说说计划任务是怎么一回事,以及怎么去实现它

一般来说计划任务分两种一次性计划任务和周期性计划任务

1,一次性计划任务:顾名思义一次性计划任务就是在某一个时间点只执行一次的任务,例如像,下周一有约会需要提醒这样只执行一次的任务,

命令at,batsh实现一次性计划任务

At的用法:at time

例如 at 10:29就是指在10:29分执行的任务

执行的结果如下

At命令的时间格式非常灵活我们可以使用

At now+1min

At 11:54

At date等在这里不再赘述

Batsh命令是指在系统空闲时执行的一次性计划任务,比如你有一件不太重要的任务需要执行,当重要的任务执行完才会执行

Batsh的用法

Batsh回车然后输入你要执行的任务

2,周期性计划任务:周期性计划任务指的是每隔一段时间就执行一次的任务,比如闹钟每天早上六点叫你起床命令 cron

(1)加载cron模块crond:crond是一种服务一般情况下crond是默认加载的但是也不排除有特出情况

Modprobe crond

(2) crond服务操作 survice crond{start|status|stop|restart}

start启动crond

status查看crond的运行状态

stop停止crond服务

restart重启crond服务

(3) crond的分类:系统crond和用户crond

系统crond是系统运行所需要的crond服务/etc/crontab

用户crond使用户定义的crond服务/var/spool/cron/USERNAME

(4) cron的书写格式 min hour day month week command

共六段第一段min指分钟,第二段hour指小时,第三段day指天,第四段mouth指月份,第五段week指周,第六段command指你要执行的命令例如

10 1** 7 ls–l/etc指的是每周末的一点10分执行ls–l/etc命令

在字段中的*指在指定的时间域上所有的时间

—对应时间域上的连续取值时间如1-10 1到10

,表示对应时间域上离散的时间取值如 1,10指的是1和10

/表示在对应时间域上每隔多久进行一次取值

如 1-10 1** 7 ls–l/etc指的是每周末的一点1-10分每分钟执行ls–l/etc命令

1,10 1** 7 ls–l/etc指的是每周末的一点1分和10分时分别执行ls–l/etc命令

*/10 1** 7 ls–l/etc每周末的一点每隔10分钟执行ls–l/etc命令

(5)说了这么多那到底怎么才能定义自己的计划任务呢?

Crond–e打开编辑文本然后输入要定义计划任务

如1,10 1** 7 ls–l/etc

保存并退出一个计划任务就做好了

我们来看看怎么定义在每天晚上的凌晨把系统备份

管理员还可以为其他用户定制计划任务使用 crontab–u username

Crontab–l可以查看已经定义的计划任务

Crontab–r移除已将定义的计划任务

(6) Crond只能在Linux系统启用的时候进行工作,当计划任务所在的时间Linux系统处于不工作状态那我们能不能在Linux启动后的一段时间内将没有做的计划任务给补上呢?档案是肯定的我们使用anacrond命令来是以这一功能

Anacron的命令格式 day min说明信息 run-parts/etc/cron.daiy

Day指过去多长时间没有执行过命令 min指启动后多长时间执行

如 1 65 run-parts/etc/cron.daily指一天没有运行过时启动后65分钟后执行任务计划

linux中at命令

at命令

at:计划任务,在特定的时间执行某项工作,在特定的时间执行一次。

格式:at+时间

例1:date//查看系统当前时间

at时间//系统计划启动任务时间

at> date>/root/1.txt//date:系统计划启动任务时间执行date命令;/root/1.txt执行命令写入位

置和文件

ctrl+d退出//退出at命令

例2:date//查看系统当前时间

at时间//系统计划启动任务时间

at> init 0/root/2.txt//init 0:系统计划启动任务时间执行init 0(关机)命令;/root/2.txt执

行命令写入位置和文件

例3:在固定时间内添加一个用户(这时建立的用户没有密码)

#at 12:00(时间)//at命令设定12:00执行一项操作

at>useradd aaa//在at命令里设定添加用户aaa

ctrl+d//退出at命令

tail-f/etc/passwd//查看/etc/passwd文件后十行是否增加了一个用户aaa

计划任务结束后,查看任务是否写入文件中,可以用cat或vi命令查看。

格式:cat(vi)+(路径)文件名

例1:cat(vi) 1.txt

日 2月 6 09:21:28 CST 2005

计划任务设定后,在没有执行之前我们可以用atq命令来查看系统没有执行工作任务。

格式:atq

例:atq

1 2005-02-06 09:23 a root

启动计划任务后,如果不想启动设定好的计划任务可以使用atrm命令删除。

格式:atrm+任务号

例:atrm 1//删除计划任务1

atq//查看计划任务是否删除

还可以进入到/var/spool/at目录里把计划任务删除,计划任务的文件都保存在该目录里,可以用rm-f

文件名来删除(以文件的形式删除计划任务,因为计划任务是以文件形式保存在该目录中)

例:#cd/var/spool/at//进入到/var/spool/at目录中

ls//显示目录中所有文件

rm-f a0000a0119b0df//删除计划任务

在通常情况下,超级用户都可以使用这个命令。对于其他用户来说,能否可以使用就取决于两个文

件:/etc/at.allow和/etc/at.deny。

当“用户名”写入/etc/at.deny中,用户不能执行at命令(管理员限制用户使用at命令)。

例:useradd text//新建一个text用户

ls/etc/at.deny//查看at.deny文件内容

vi/etc/at.deny//对at.deny文件进行编辑

text//对at.deny文件进行编辑,写入text用户名,进行at命令限制,然后wq(保存退出)

cat/etc/at.deny//显示at.deny文件内容

su- text//切换到text用户

at 12:00//text用户执行at命令,如果被限制则出现下面的提示。

You do not have permission to use at.你不允许使用at这个命令

at.allow比at.deny优先级高

at.allow文件中有的用户可以执行at,没有则不能。

linux操作系统在执行用户是否可以执行at命令时,先看at.allow文件没有才看at.deny文件。

注意:linux操作系统默认没有/etc/at.allow文件。

例:ls/etc/at.allow//查看是否已经建立at.allow文件

touch/etc/at.allow//建立/etc/at.allow文件

vi/etc/at.allow//对at.allow文件进行编辑

text//对at.allow文件进行编辑,写入text用户名,该用户名可以执行at命令,然后wq(保存退出)。

su- text//切换到text用户

at 12:00//text用户执行at命令,若不出现上面所说的提示就可以进行at命令设定了。

at命令格式

at HH:MM YYYY-MM-DD//HH(小时):MM(分钟) YYYY(年)-MM(月份)-DD(日)

例:at 4:00 2004-11-27

HH[am pm]+D(天) days//HH(小时)[am(上午)pm(下午)]+days(天)

例:4pm+ 3days:3天以后下午4:00执行at命令设定的计划任务。

linux计划任务-单次任务(at)与循环任务(crontab)

Linux计划任务主要分为单次任务(at)与循环任务(crontab)。at任务通过从标准输入读取任务内容并自动转化为脚本执行,适用于需要在特定时间运行的单次任务。常用时间格式包括绝对时间、相对时间,例如设置在特定时间执行命令。

crontab任务则通过cron服务(crond)实现,提供定期执行任务的机制,适用于系统管理和用户自定义任务。crontab任务格式包括时间设定段(分钟、小时、日、月、周)与命令段,可以使用星号、逗号、中杠、正斜线等特殊字符表示时间范围。crontab命令可以用来编辑、查看、删除任务,使用时需要注意编辑器设置、文件备份、权限管理等细节。

在Linux系统中,crontab服务默认启动,可以通过系统控制工具检查服务状态,并设置为开机启动。crontab命令提供了编辑、查看和删除任务的功能,参数多样,如-e编辑、-l列出、-r删除等,其中编辑时需设置环境变量EDITOR以选择编辑器。crontab文件可存放用户自定义任务,每行代表一项任务,格式为分钟、小时、日、月、周与命令。

为了配置crontab任务,用户可使用特定命令格式,例如设置每15分钟执行一次命令。编辑crontab文件时,需注意添加注释以描述任务功能和运行时间。删除crontab文件时,使用crontab-r命令。如果需要恢复丢失的crontab文件,可在备份文件存在的情况下,使用crontab命令进行复制。

在使用crontab命令时,需注意任务执行时的环境变量问题。任务调度执行时,系统并不知道所需要的特殊环境,因此在crontab文件中需明确配置所有任务运行所需的环境变量。确保脚本中涉及文件路径为全局路径,并在脚本中引入环境变量,如通过source命令引入。

为避免系统邮件日志占用大量存储空间,每次任务执行后通过重定向操作将日志输出忽略,如将标准输出和标准错误重定向到/dev/null,可以有效解决日志输出问题。

在Linux中,任务调度分为系统级任务调度与用户级任务调度。系统级任务调度主要负责系统维护操作,用户级任务调度则支持用户自定义任务。在配置系统级任务时,需确保任务放置在正确的配置文件中,如使用crontab命令设置任务或编辑/etc/crontab文件。

当crontab任务失效时,可以通过重启cron服务、检查日志或使用特定命令来排查问题。执行crontab-r命令时需谨慎,以避免删除用户crontab文件。在使用crontab命令时,注意%字符的特殊含义,如在命令中使用时需要转义。

阅读剩余
THE END