文章目录
- Linux搭建服务器的准备工作
- 第一章 Linux的例行性工作
- 1.1 单一执行的例行性工作at
- 1.1.1 at命令的实际工作过程
- 1.1.2 at命令详解
- 1.2 循环执行的例行性工作
- 1.2.1 crontab命令的实际工作过程
- 1.2.2 crontab命令详解
- 1.3 实验
- 实验一:定义三分钟之后显示hello
- 实验二 : 每天早上9点整,说good morning
- 实验三:指定某些用户不可以执行计划任务
- 实验四:系统的例行性任务
- 实验五:可唤醒停机期间的工作任务
Linux搭建服务器的准备工作
- 操作环境 : 创建完虚拟机,安装命令行界面的linux操作系统(centos8,rocky8,rhel8)
- 为服务器配置白名单和安全组 :
vim /etc/selinux/config,selinux=disabled
- 关闭防火墙:
systemctl disable firewalld
- 网络设置 :在NAT模式下,配置至少一个可上网的静态IP 写好yum源(本地源,网络源)
- 安装好相应的常用工具 :vim,netstat,bash-completion,chrony
让你的系统时间可以自动根据时间服务器进行同步 - 写好当前局域网内主机的hosts文件
- 做快照
第一章 Linux的例行性工作
1.1 单一执行的例行性工作at
单一执行的例行性工作:单一执行的例行性工作:仅处理执行一次就结束了,at 的对应的服务名 atd
我们使用 at 命令来生成所要运行的工作,并将这个工作,以文本方式写入/var/spool/at/
目录内,该工作便能等待 atd 这个服务的取用与执行了。
为了安全问题,不是所有人都可以进行 at 工作调度。我们可以利用/etc/at.allow和/etc/at.deny
这两个文件来进行 at 的使用限制。
1.1.1 at命令的实际工作过程
- 寻找到/etc/at.allow文件
存在
,写在这个文件的用户才能使用at命令
/etc/at.allow不存在
,则寻找/etc/at.deny文件,写在该文件的用户不能使用at命令 - 若两个文件都不存在,那么只有root可以使用at命令
注意:
在 rhel 里面,由于假设系统上的所有用户都是可信任的,所以允许所有人使用 at 命令,/etc/at.deny
文件为空,如果你想设置拒绝某人使用 at 命令,你可将该用户写入/etc/at.deny文件
1.1.2 at命令详解
命令格式:at [参数] [时间]
参数 说明
-m 当任务完成之后,即使没有标准输出,将给用户发送邮件
-l atq的别名,可列出目前系统上面的所有该用户的at调度
-d atrm的别名,可以取消一个在at调度中的工作
-v 使用较明显的时间格式,列出at调度中的任务列表
-c 可以列出后面接的该项工作的实际命令内容
-f 从文件中读取作业
时间格式:
1.2 循环执行的例行性工作
循环执行的例行性工作**:每隔一定的周期就需要执行一次,crontab
循环执行的例行性工作调度是由crond这个系统服务来控制的。同样,我们也可以限制使用crontab的用户账号。
1.2.1 crontab命令的实际工作过程
1、以账号来判别是否可使用crontab命令
/etc/cron.allow
将可以使用 crontab 的账号写入其中,若不在该文件内的用户 则不可使用 cronta/etc/cron.deny
将不可以使用 crontab 的账号写入其中,若不在该文件内的用 户则可使用 crontab。
2、当用户使用 crontab 新建工作调度之后,该项工作就会被记录到/var/spool/cron/
里面
3、cron 执行的每一项工作都会被 记录到/var/log/cron
这个日志文件中
1.2.2 crontab命令详解
命令格式: crontab [-u user] [-l | -r | -e]
编辑 crontab :
[root@localhost cron]# crontab -e
文件格式为:每一行为一个工作,每项工作具有六个字段
文件内的特殊字符:
1.3 实验
实验一:定义三分钟之后显示hello
at now + 3 minutes
注释:
atq可以查看目前主机上有多少的at工作调度
atrm可以删除某项at工作调度
实验二 : 每天早上9点整,说good morning
0 9 * * * wall "good morning"
注释:
wall命令用于向系统当前所有打开的终端上输出信息。
通过wall命令可将信息发送给每位同意接收公众信息的终端机用户,若不给予其信息内容,则wall命令会从标准输入设备读取数据,然后再把所得到的数据传送给所有终端机用户。
实验三:指定某些用户不可以执行计划任务
分别在下面两个文件中添加上拒绝执行计划任务的用户
/etc/at.deny
/etc/cron.deny
实验四:系统的例行性任务
[root@localhost ~]# vim /etc/crontab
SHELL=/bin/bash 运行计划所使用的shell 默认是bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin 指定命令执行环境变量路径
MAILTO=root MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户
user-name command to be executed
user-name表示执行命令的用户是谁
当需要同一时间执行多个脚本时,可以将这多个脚本放在一个目录下,然后使用run-parts来执行。
run-parts:该命令可将后面接的“目录”内的所有文件找出来执行。
实验五:可唤醒停机期间的工作任务
anacron 可以处理关机状态时未执行的计划任务,anacron不能指定何时执行某项任务,而是以天为单位或是在开机后立刻进入anacron的操作(/etc/anacrontab)
。它会去检测停机期间应该进行但是并没有进行的crontab任务,并将该任务执行一遍,然后anacron就会自动停止了