Linux学习命令汇总九——任务计划调度atd,crond及文件访问控制列表

本章Blog相关Linux知识点



linux 任务计划:

一次性任务计划命令: at ,batch ,依赖进程atd

周期性任务计划命令:crontab ,anacron ,依赖进程crond

at,batch命令及选项



at,batch是可以处理进执行一次就结束调度的命令。不过在执行at时,必须有atd服务支持才行 。若atd默认未启动,则at命令就会失效 。batch是利用at来进行命令的执行,系统空闲时才执行后台任务 。

交互式:让用户在at> 提示符输入多个要执行的命令

批处理:将任务的命令写入文件由at进行调用

建议使用命令绝对路径,使用Ctrl+d键提交任务

# at TIME

# at -m :当at的工作完成后,即使没有输出信息,依然以email方式通知该任务已完成

# at  -l  : 相当于atq 命令,列出目前系统上面所有at调度任务

# at  -d  JOBS:相当于atrm 命令,取消JOBS 调度  ,例  # at -d 1   取消第一个调度任务

# at  -c  job : 列出该job 的实际命令内容

# batch  不能指定时间,它自动选择系统空闲时间执行

[[email protected] ~]# chkconfig --add atd     依赖atd服务
[[email protected] ~]# chkconfig atd on
[[email protected] ~]# at now +5 minutes    从现在开始第5分钟执行
at> /bin/ls /etc/passwd
at> /bin/sync
at> /sbin/shutdown -r now    
at> <EOT>
job 5 at 2018-05-06 19:21
[[email protected] ~]# at -l 
5    2018-05-06 19:21 a root
3    2018-05-06 18:24 b root
[[email protected] ~]# at -d 3
[[email protected] ~]# atq
5    2018-05-06 19:21 a root
[[email protected] ~]# at -m
Garbled time
[[email protected] ~]# at -c 5
#!/bin/sh
# atrun uid=0 gid=0
# mail root 0
umask 22
HOSTNAME=study.itwish.cn; export HOSTNAME
SHELL=/bin/bash; export SHELL
HISTSIZE=1000; export HISTSIZE
...
[[email protected] ~]# batch
at> /bin/ls /etc/issue
at> /bin/sync
at> <EOT>

mail命令及选项



mail命令,并使用Ctrl+D键 提交邮件

# mail  查看邮件,并使用号码选择要查看的邮件,使用quit退出

# mail root   向root用户发送邮件

# mail -s “How are”root

# mail -s “Ceshi” root <  /etc/passwd   指定/etc/passwd 文件作为发送root用户的邮件内容

[[email protected] ~]# yum install mailx -y   安装mailx邮件
[[email protected] ~]# mail      查看邮件
Heirloom Mail version 12.4 7/29/08.  Type ? for help.
"/var/spool/mail/root": 2 messages 2 new
>N  1 root                  Tue May  8 09:42  38/1511  "ces"
 N  2 root                  Tue May  8 09:43  18/583   "ces"
& 1    输入邮件号查看邮件内容
Message  1:
From [email protected]  Tue May  8 09:42:50 2018
Return-Path: <[email protected]>
X-Original-To: root
Delivered-To: [email protected]
Date: Tue, 08 May 2018 09:42:50 +0800
To: [email protected]
Subject: ces
User-Agent: Heirloom mailx 12.4 7/29/08
Content-Type: text/plain; charset=us-ascii
From: [email protected] (root)
Status: R

how are

& 2
Message  2:
From [email protected]  Tue May  8 09:43:05 2018
Return-Path: <[email protected]>
X-Original-To: root
Delivered-To: [email protected]
Date: Tue, 08 May 2018 09:43:05 +0800
To: [email protected]
Subject: ces 
User-Agent: Heirloom mailx 12.4 7/29/08
Content-Type: text/plain; charset=us-ascii
From: [email protected] (root)
Status: R

how are you ?

& quit   退出

crontab ,anacron命令及选项



周期性任务:cron ,

# yum install crontabs -y  安装crond 进程及crontab 命令

建议命令写全路径 ,日志目录为 /var/log/cron

cron任务命令依赖于crond进程 ,crond:守护进程,运行在后台,随时监听着进程等待执行家目录,主目录 home directory

系统cron:

# chkconfig crond on  配置开机运行crond 进程

# service crond start   启动crond进程

# service crond status  查看crond进行是否运行

# ps -aux | grep crond  查看运行中是否包含crond 进程

配置文件: /etc/crontab

[[email protected] ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

选项: 分钟  小时  天 月 周  用户  命令

注意:添加用户名称

例: */1  * * * * root /bin/echo "hello word"    表示每分钟root 用户执行/bin/echo "hello word" 语句

01  00  *  *  1  root /etc/rc.d/init.d/httpd restart   表示每周一的0点1分root用户执行 httpd 重启服务

时间表示法:

1、每个时间位都应该使用其可用的有效范围的值

2、某时间位上的*表示对应位的所有的有效取值

3、 - 表示连续的时间点取值 ,如 30-35

4、  , 表示离散的时间点取值 ,如 3 ,5

5、  */# 表示在指定的时间范围内每隔# 执行一次 ,如  */2 * * * * /bin/echo "hello word"   &> /dev/null   表示每隔2分钟输出语句“hello word”,通过输出重定向而避免接收邮件

用户cron:

使用crontab命令来实现,配置文件  /etc/spool/cron/ 目录中以登录名命名的文件

# crontab -l  查看自己的crontab任务列表

# crontab -e 通过editor 变量中定义的编辑器打开自己的cron配置文件,编辑单独的任务都是用-e 选项,无论是删除还是新建

# crontab -r 移除crontab文件

如果是管理员 # crontab -u username 为username用户指定crontab作业 ,例 :crontab -e -u docker  为用户docker 指定crontab作业

anacron :最小刻度是天 ,是crontab的补充,用于检查crontab中某任务在过去一个周期是否没有执行;如果没有执行,则在开机以后的某个时间点让其执行一次,无论其周期是否到达

[[email protected] ~]# vi /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
*/1 * * * * root /bin/echo "hello word"
42 15 * * * root /etc/rc.d/init.d/httpd restart
[[email protected] ~]# tail -f /var/log/cron   查看cron日志
May  8 15:42:01 study crond[1361]: (*system*) RELOAD (/etc/crontab)
May  8 15:42:01 study CROND[1756]: (root) CMD (/bin/echo "hello word")
May  8 15:42:01 study CROND[1757]: (root) CMD (/etc/rc.d/init.d/httpd restart)
[[email protected] ~]# mail   查看邮件确认
Heirloom Mail version 12.4 7/29/08.  Type ? for help.
>N 1 Cron Daemon           Tue May  8 15:42  23/775   "Cron <[email protected]> /bin/echo "hello word""
 N 2 Cron Daemon           Tue May  8 15:42  24/824   "Cron <[email protected]> /etc/rc.d/init.d/httpd restart"
[[email protected] ~]# crontab -e     为登录用户配置cron 任务
no crontab for root - using an empty one
*/1 * * * *  /bin/ls /etc/passwd
[[email protected] ~]# crontab -l
*/1 * * * *  /bin/ls /etc/passwd
[[email protected] ~]# crontab -u docker -e   为用户docker 指定cron任务 
no crontab for docker - using an empty one
*/1 * * * *  /bin/cat /etc/passwd
[[email protected] ~]# crontab -l
*/1 * * * *  /bin/ls /etc/passwd
[[email protected] ~]# crontab -r   删除本用户cron任务
[[email protected] ~]# crontab -u docker -l
*/1 * * * *  /bin/cat /etc/passwd
[[email protected] ~]# crontab -u docker -r 
[[email protected] ~]# cd /var/spool/cron/  查看/var/spool/cron/目录,确认那个用户存在cron任务 
[[email protected] cron]# ls

文件访问控制列表facl



FACL:Filesystem Acess Control List

Linux(和其他Unix等POSIX兼容的操作系统)有一种被称为访问控制列表(ACL)的权限控制方法,它是一种权限分配之外的普遍范式。例

如,默认情况下你需要确认3个权限组:owner、group和other。而使用ACL,利用文件扩展属性保存额外的访问控制权限,你可以增加权限或其他用户或组别。可以允许指定的用户A、B、C拥有写权限而不再是让他们整个组拥有写权限。

# setfacl 设定facl权限
  -m: 设定权限
    [u|g]:UID:perm

    d:[u|g]:UID:perm   继承父目录facl权限

    m::perm
  -x:取消facl权限
    [u|g]:UID

m:

  -R: 为某一个目录设置默认的访问控制列表。意味着在这个目录下的文件将自动继承目录的访问控制列表权限。

# setfacl -m u:hadoop:rw inittab  配置文件inittab对用户hadoop具有读写权限

# setfacl -x u:hadoop  inittab  取消facl 权限

[[email protected] root]## yum install acl   安装acl 功能
[[email protected] root]# vi /etc/fstab 
....
/dev/mapper/vg0-home    /home       ext4    defaults,acl       1 2       激活磁盘分区ACL功能
....
[[email protected] ~]#  mount -o remount /home  重新挂载/home分区 
[[email protected] ~]# useradd hadoop
[[email protected] ~]# useradd docker
[[email protected] ~]# cd /home
[[email protected] home]# setfacl -m u:docker:rw ./a.txt 
[[email protected] home]# setfacl -m u:hadoop:rw ./a.txt 
[[email protected] home]# getfacl a.txt 
# file: a.txt
# owner: root
# group: root
user::rw-
user:hadoop:rw-
user:docker:rw-
group::r--
mask::rw-
other::r--

[[email protected] home]# cat /etc/issue > a.txt
[[email protected] home]# su - docker
[[email protected] ~]$ vi /home/a.txt 
CentOS release 6.9 (Final)
Kernel \r on an \m

本章知识点汇总



# chkconfig atd on         在2-5级别下开机自动启动该进程

# chkconfig crond on    开机启动crond进程服务

# chconfig postfix on    开机启动postfix邮件进程服务

# service atd start          启动atd进程服务

# service crond start      启动crond服务

# service postfix start    启动邮件服务

# at TIME         执行一次性任务调度

# atq                查询at 任务 ,相当于 # at -l

# atr                 删除at任务  ,相当于# at -d

# mail -s “Subject” Username  发送主题为Subject的邮件到Username用户

# crontab -r    删除本用户的crontab任务

# crontab -l -u Username  显示Username用户的任务列表

# crontab -e      编辑本用户的crontab任务

# setfacl  -m  [u|g]:Username:Permis Filename    添加FACL 功能

# setfacl -x  [u|g]:Username:Permis Filename     取消FACL 功能

原文地址:http://blog.51cto.com/itwish/2114176

时间: 2024-10-01 13:59:18

Linux学习命令汇总九——任务计划调度atd,crond及文件访问控制列表的相关文章

Linux学习命令汇总六——磁盘分区,磁盘挂载,文件系统管理,压缩及归档命令

本章Blog相关Linux知识点 Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 系统中的文件.目录.软连接及文件保护信息等都存储在其中.按照名称进行存取. 磁盘:磁道,扇区 ,柱面 ,固定角速度 ,平均寻道时间 MBR :master boot recoard 主引导记录 (512字节),存放bootloader (引导加载器 446字节)+ 磁盘分区 (64字节) 一块磁盘最多分为4个主分区 ,或者3主分区1扩展分区  ,磁盘在C

Linux学习命令汇总八——文件查找命令find选项及使用技巧

本章Blog相关Linux知识点 find与grep的不同点: find为文件搜索命令--用来在指定目录下查找文件,而grep 为文本搜索命令--根据用户指定的文本模式对目标文件进行逐步搜索,显示能够被匹配的行 : find选项支持文件通配符,而grep选线支持正则表达式  : find查找为精确查找,精确匹配但搜索速度稍慢. grep命令选项及正则表达式类型,详细请参考前文"Linux学习命令汇总三--Linux用户组管理,文件权限管理,文本搜索命令grep及正则表达式"   bas

Linux学习命令汇总五——vim 使用技巧及快捷键

本章Blog相关Linux知识点 vim模式:编辑模式(命令模式)--键盘操作通常解析为编辑命令:输入模式--键盘输入模式:末行模式--Vim内置的命令接口,执行Vim内置命令 vim配置文件: /etc/vimrc 模式转换: 编辑模式--> 输入模式: i:在当前的光标所在的字符的前面,转入输入模式 I:在当前的光标所在的行首,转入输入模式 a:在当前的光标所在的字符的后面,转入输入模式 A:在当前光标所在的行尾,转入输入模式 o:在当前的光标所在的行的下面,新建一行,转入输入模式 O:在当

Linux 常用命令汇总

Linux 常用命令汇总 1. 显示日期与时间:date 可修改显示日期格式,如:date +%Y/%m/%d %H:%M à2016/12/25 17:05(%Y:年:%m:月:%d:日:%H:24小时制:%M:分) date –d 参数后可加:today/yesterday/tomorrow 来显示今天.昨天.明天日期 2. 显示日历:cal(默认显示本月月历) cal 2001 可显示2001年整年日历:cal 10 2001 可具体显示某月月历 3.  计算器:bc 4. Tab键:用在

linux学习命令总结②

#shutdown命令:系统关机.重启等 shutdown [options]- Time Time : now(马上) +#(多少分钟后) hh:mm(几点几分) 系统五分钟后关机: [[email protected]_168_102_centos ~]# shutdown 5//系统5分钟后重启 Broadcast message from [email protected]_168_102_centos (/dev/pts/0) at 16:19 ... The system is go

linux学习命令总结⑧

#chown命令:通过chown改变文件的属主和属组.在更改文件的属主或所属组时,可以使用用户名称和用户识别码设置.普通用户不能将自己的文件改变成其他的属主.其操作权限一般为管理员. 修改文件属主和属组: [[email protected]_168_102_centos ~]# ls -l total 8 drwxr-xr-x 2 wanghan hx 4096 Aug 12 10:32 abe drwxr-xr-x 2 root wanghan 4096 Aug 12 10:32 xab [

Linux学习日志(九)

文件查找: find命令 grep : 文本搜索 find :文本查找 locate:(updatedb 手动生产) 1.依赖于数据库 2.非实时查找,结果非精确 3.查找速度快 4.采用的模糊查找 find: 实时查找:速度慢 精确匹配 格式: find [options] [查找路径] [查找条件] [处理动作] 查找路径:默认为当前目录 查找条件:默认为查找指定路径下的所有文件 处理动作:默认为显示 查找条件: -name "文件名称":支持使用globbing(文件通配) -i

linux学习命令总结⑨

#重定向 输出重定向: 1>覆盖输出(1可省略) [[email protected]_168_102_centos tmp]# ls functions >shuchu [[email protected]_168_102_centos tmp]# cat shuchu functions [[email protected]_168_102_centos tmp]# ls fstab >shuchu [[email protected]_168_102_centos tmp]# ca

linux学习命令总结⑤

#stat命令:查看文件信息 [[email protected]_168_102_centos ~]# stat test.log File: `test.log' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: ca01h/51713d Inode: 483339 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 500/ wanghan) Access: