Code前端首页关于Code前端联系我们

Linux命令完整列表: 在

terry 2年前 (2023-09-28) 阅读数 56 #未命名

Windows系统中,Windows提供了计划任务的功能。在控制面板->性能和维护->任务计划程序中,它的功能是安排自动运行的任务。您可以使用“添加任务计划”的分步指导来创建计划任务。

在Linux系统中,你可能发现了为什么系统经常自动执行某些任务?谁检查他们在这些任务上的工作?如果你想让你在Linux系统上设计的备份程序在某个时间自动在系统下运行而不需要你手动启动,你该怎么办?这些例行任务可以分为一次性计划任务和循环计划任务。系统中哪些服务负责此操作?而如果你想在每年妻子生日的前一天发一封信提醒自己不要忘记,在Linux系统下该怎么做呢?
现在让我们学习如何使用 at 命令来执行一次性计划任务。

1。命令格式

om[参数][时间]

2.命令功能

在指定时间执行指定任务。它只能运行一次,并且必须打开进程atd
ps -ef | grep atd以使用/etc/init.d/atd start 或重新启动;要立即启动,请运行chkconfig --level 2345 atd on)。

3。命令参数

  • -m 当指定任务完成时,即使没有标准输出,也会向用户发送电子邮件
  • -I atq 的别名
  • - d atrm 的别名
  • -v 显示作业运行时间
  • -c 将作业内容打印到标准输出
  • -V 显示版本信息
  • -q 使用指定队列
  • -f 从指定文件而不是标准输入读取作业
  • -t 将要执行的任务作为时间参数提交。任务
    at 允许使用一组相当复杂的方法来指定时间。它可以接受当天的 hh:mm(小时:分钟)格式的时间规范。一旦时间过去,它将在第二天执行。当然,也可以用午夜(深夜)、下午(下午)、下午茶时间(一般是下午4点)等模糊的词语来表示时间。用户还可以采用12小时计时制,即在时间后添加AM(上午)或PM(下午)来表示是上午还是下午。您还可以以月-日(月-日)或 mm/dd/yy(月/日/年)或 dd.mm.yy(日.月.年)格式指定执行命令的具体日期。指定日期必须在指定时间之后。以上都是绝对计时方法。其实也可以采用相对计时的方式,这对于安排即将执行的命令非常有利。给出的格式是:now+计数时间单位,now是当前时间,timeunits是时间单位,可以是分钟、小时、天、周。计数是时间的量,无论是天数、小时数等等。另一种计时方法是直接使用today(今天)和tomorrow(明天)来指定命令应该完成的时间。
    TIME:时间格式,您可以在此处定义何时执行此任务。格式为:
    HH:MM    
    ex> 04:00
    
    Shell

    在当前HH:MM时间执行,如果时间已到则明天的HH:MM将执行该任务。

    HH:MM YYYY-MM-DD
    ex> 04:00 2017-03-17
    
    Shell

    强制在某年某月某日的某个时间执行此任务

    HH:MM[am|pm] [Month] [Date]
    ex> 04pm March 17
    
    Shell

    同样,强制在某个时间执行此任务某年某日某月某某时间执行时间

    HH:MM[am|pm] + number [minutes|hours|days|weeks]
    ex> now + 5 minutes
    ex> 04pm + 3 days
    
    Shell

    即在某个时间再增加几个小时再执行任务。

4.使用示例

示例 1:三天后下午 5:00 运行命令 /bin/ls

at 5pm+3 days
Shell

输出:

[root@localhost yiibai]# at 5pm+3 days
at> /bin/ls
at> <EOT> ## Ctr+D
job 4 at Thu Mar  2 17:00:00 2017
[root@localhost yiibai]#
Shell

示例 2:明天 5 点: 00 PM .00'时钟,执行时间 前往指定文件

命令:

at 17:20 tomorrow
Shell

输出:

[root@localhost yiibai]# at 17:20 tomorrow
at> date >/home/yiibai/date.log
at> <EOT>
job 5 at Tue Feb 28 17:20:00 2017
[root@localhost yiibai]#
Shell

例三:定时任务设置完毕后,我们可以使用atq命令在运行任务之前检查系统是否没有运行该任务。

命令:

atq
Shell

输出:

[root@localhost yiibai]# atq
4       Thu Mar  2 17:00:00 2017 a root
5       Tue Feb 28 17:20:00 2017 a root
[root@localhost yiibai]#
Shell

示例 4:删除已设置的任务

命令:

atrm 7
Shell 输出:
[root@localhost yiibai]# atrm 4
[root@localhost yiibai]# atq
5       Tue Feb 28 17:20:00 2017 a root
[root@localhost yiibai]#
外壳

示例 5:显示设置的任务内容

命令:

at -c 5
Shell

输出:

[root@localhost yiibai]# at -c 5
#!/bin/sh
# atrun uid=0 gid=0
# mail yiibai 0
umask 22
XDG_SESSION_ID=3; export XDG_SESSION_ID
HOSTNAME=localhost.localdomain; export HOSTNAME
SHELL=/bin/bash; export SHELL
HISTSIZE=1000; export HISTSIZE
SSH_CLIENT=192.168.0.5\ 51577\ 22; export SSH_CLIENT
SSH_TTY=/dev/pts/0; export SSH_TTY
USER=yiibai; export USER
LS_COLORS=rs=0:di=01\;34:ln=01\;36:mh=00:pi=40\;33:so=01\;35:do=01\;35:bd=40\;33\;01:cd=40\;33\;01:or=40\;31\;01:mi=01\;05\;37\;41:su=37\;41:sg=30\;43:ca=30\;41:tw=30\;42:ow=34\;42:st=37\;44:ex=01\;32:\*.tar=01\;31:\*.tgz=01\;31:\*.arc=01\;31:\*.arj=01\;31:\*.taz=01\;31:\*.lha=01\;31:\*.lz4=01\;31:\*.lzh=01\;31:\*.lzma=01\;31:\*.tlz=01\;31:\*.txz=01\;31:\*.tzo=01\;31:\*.t7z=01\;31:\*.zip=01\;31:\*.z=01\;31:\*.Z=01\;31:\*.dz=01\;31:\*.gz=01\;31:\*.lrz=01\;31:\*.lz=01\;31:\*.lzo=01\;31:\*.xz=01\;31:\*.bz2=01\;31:\*.bz=01\;31:\*.tbz=01\;31:\*.tbz2=01\;31:\*.tz=01\;31:\*.deb=01\;31:\*.rpm=01\;31:\*.jar=01\;31:\*.war=01\;31:\*.ear=01\;31:\*.sar=01\;31:\*.rar=01\;31:\*.alz=01\;31:\*.ace=01\;31:\*.zoo=01\;31:\*.cpio=01\;31:\*.7z=01\;31:\*.rz=01\;31:\*.cab=01\;31:\*.jpg=01\;35:\*.jpeg=01\;35:\*.gif=01\;35:\*.bmp=01\;35:\*.pbm=01\;35:\*.pgm=01\;35:\*.ppm=01\;35:\*.tga=01\;35:\*.xbm=01\;35:\*.xpm=01\;35:\*.tif=01\;35:\*.tiff=01\;35:\*.png=01\;35:\*.svg=01\;35:\*.svgz=01\;35:\*.mng=01\;35:\*.pcx=01\;35:\*.mov=01\;35:\*.mpg=01\;35:\*.mpeg=01\;35:\*.m2v=01\;35:\*.mkv=01\;35:\*.webm=01\;35:\*.ogm=01\;35:\*.mp4=01\;35:\*.m4v=01\;35:\*.mp4v=01\;35:\*.vob=01\;35:\*.qt=01\;35:\*.nuv=01\;35:\*.wmv=01\;35:\*.asf=01\;35:\*.rm=01\;35:\*.rmvb=01\;35:\*.flc=01\;35:\*.avi=01\;35:\*.fli=01\;35:\*.flv=01\;35:\*.gl=01\;35:\*.dl=01\;35:\*.xcf=01\;35:\*.xwd=01\;35:\*.yuv=01\;35:\*.cgm=01\;35:\*.emf=01\;35:\*.axv=01\;35:\*.anx=01\;35:\*.ogv=01\;35:\*.ogx=01\;35:\*.aac=01\;36:\*.au=01\;36:\*.flac=01\;36:\*.mid=01\;36:\*.midi=01\;36:\*.mka=01\;36:\*.mp3=01\;36:\*.mpc=01\;36:\*.ogg=01\;36:\*.ra=01\;36:\*.wav=01\;36:\*.axa=01\;36:\*.oga=01\;36:\*.spx=01\;36:\*.xspf=01\;36:; export LS_COLORS
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/yiibai/bin:/sbin:/usr/bin:/usr/sbin; export PATH
MAIL=/var/spool/mail/yiibai; export MAIL
PWD=/home/yiibai; export PWD
LANG=en_US.UTF-8; export LANG
HISTCONTROL=ignoredups; export HISTCONTROL
HOME=/root; export HOME
SHLVL=2; export SHLVL
LOGNAME=yiibai; export LOGNAME
SSH_CONNECTION=192.168.0.5\ 51577\ 192.168.0.210\ 22; export SSH_CONNECTION
LESSOPEN=\|\|/usr/bin/lesspipe.sh\ %s; export LESSOPEN
XDG_RUNTIME_DIR=/run/user/1000; export XDG_RUNTIME_DIR
cd /home/yiibai || {
         echo 'Execution directory inaccessible' >&2
         exit 1
}
${SHELL:-/bin/sh} << 'marcinDELIMITER40a1c04f'
date >/home/yiibai/date.log

marcinDELIMITER40a1c04f
[root@localhost yiibai]#
Shell

示例 6:

命令和输出:

描述:

  • 5。如何启动 atd 并运行 at
    • 5.1。启动atd单机使用 调度任务时,Linux系统必须是。必须有一个服务负责这个调度任务,即atd服务。然而,并非所有 Linux 发行版都默认启用此功能,因此在某些时候我们必须手动激活 atd 服务。激活方法很简单,就像这样:
      命令:
      /etc/init.d/atd start 
      /etc/init.d/atd restart
      
      Shell

      输出:

描述:
/etc/init.d/atd start 什么时候未启动,立即重启 atd 服务
/etc/init.d/atd restart 服务启动后,重启atd 服务
注意:配置它。在启动时启动此服务,以避免每次重新启动时都必须执行此操作。
命令:

chkconfig atd on
Shell

输出:

  • 5.2 如何在
    上运行 由于这是一个计划任务,所以必须有任务如何执行以及这些任务如何计划。那么如何生成计划任务呢?基本上,我们使用 at 命令生成要运行的计划任务,并将该计划任务写入文件夹/var/spool/at/ 中的文本文件。该作业可以等待 atd 访问并运行此服务。就是这么简单。
    但是,并不是每个人都能 执行计划任务。为什么?由于系统安全。很多主机被所谓的攻击破解之后,最常见的发现就是其系统中存在很多黑客程序。这些程序很可能会使用许多计划任务来运行或收集有关系统操作的信息,并定期将其发送给黑客。因此,除非这是您批准的帐户,否则不要让他们使用 at 命令。那么如何实现at的可控使用呢?
    我们可以使用/etc/at.allow/etc/at.deny这两个文件来进行限制使用。添加这两个文件后,at的工作情况如下:
    首先查找文件/etc/at.allow以及在该文件中写入的用户 仅限用户不在这个文件中不能使用at(即使没有写在at.deny);
    如果/etc/at.allow 不是。如果存在,请查找文件 /etc/at.deny。如果文件写在这个at.deny中,用户就无法使用at。如果不在这个at.deny 中,用户可以使用文件中的at命令。
    如果两个文件都不存在,则只有 root 可以使用命令 at
    从这个解释我们知道/etc/at.allow是比较严格的管理方式,而/etc/at.deny则比较宽松(因为账单不在这个您可以运行的文件)。因为系统上的所有用户都被认为是值得信赖的,所以在一般发行版中,系统通常会留下一个空的 /etc/at.deny 文件,这意味着任何人都可以使用 at 命令。意思(你可以自己查看文件)。但是,如果您不希望某些用户使用at,只需注册该用户的帐户即可/etc/at.deny!每个帐户写一行。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门