環(huán)境搭建
- 操作環(huán)境?: 創(chuàng)建完虛擬機(jī),安裝命令行界面的linux操作系統(tǒng)(centos8,rocky8,rhel8)
- 為服務(wù)器配置白名單和安全組?:vim /etc/selinux/config,selinux=disabled
- (getenforce:查看selinux工作模式)
- 關(guān)閉防火墻?:systemctl ?disable firewalld
- 網(wǎng)絡(luò)設(shè)置?:在NAT模式下,配置至少一個(gè)可上網(wǎng)的靜態(tài)IP
- 寫好yum源(本地源,網(wǎng)絡(luò)源)
- 安裝好相應(yīng)的常用工具?:vim,netstat,bash-completion,chrony
- 讓你的系統(tǒng)時(shí)間可以自動(dòng)根據(jù)時(shí)間服務(wù)器進(jìn)行同步
- 寫好當(dāng)前局域網(wǎng)內(nèi)主機(jī)的hosts文件
- 做快照
getenforce:查看selinux工作模式
- enforcing:強(qiáng)制模式:會組織進(jìn)程訪問對應(yīng)的資源(不符合selinux策略規(guī)則的情況)。
- permissive:寬容模式:只會有告警,不會阻止進(jìn)程來訪問資源
- disabled:關(guān)閉selinux
臨時(shí)更改:將其改為permissive模式
?(告警會打印到 /var/log/messages/ 文件中)
永久修改:修改配置文件
服務(wù)設(shè)置
- systemctl? start/stop/restart? service_name : 啟動(dòng)/停止/重啟服務(wù)
- systemctl? status? service_name:查看服務(wù)狀態(tài)
- systemctl? enable? service_name:設(shè)置開機(jī)自啟動(dòng)服務(wù)
- systemctl? disable? service_name:禁用服務(wù)
yum源配置
1>查看本地的repo文件
[root@localhost yum.repos.d]# ll
total 4
-rw-r--r--. 1 root root 358 Jun 4 00:35 redhat.repo
1>修改名字,讓其失效
[root@tianqinwei yum.repos.d]# mv redhat.repo redhat.repo.bak
3>進(jìn)入vim編輯
[root@tianqinwei yum.repos.d]# vim rhel8.repo
[BaseOS]
name=BaseOS
baseurl=https://mirrors.aliyun.com/centos/8.5.2111/BaseOS/x86_64/os/
gpgcheck=0
[AppStream]
name=AppStream
baseurl=https://mirrors.aliyun.com/centos/8.5.2111/AppStream/x86_64/os/
gpgcheck=0
4>檢查
[root@tianqinwei yum.repos.d]# yum repolist
單一執(zhí)行的例行性工作
(1)命令:at ---> atd(服務(wù))
[root@localhost ~]# systemctl status atd
● atd.service - Job spooling tools
Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2023-06-04 01:03:35 CST; 9h ago
Main PID: 1017 (atd)
Tasks: 1 (limit: 11366)
Memory: 668.0K
CGroup: /system.slice/atd.service
└─1017 /usr/sbin/atd -f
Jun 04 01:03:35 localhost.localdomain systemd[1]: Started Job spooling tools.
<1> 使用流程
使用 at 命令來生成所要運(yùn)行的工作,并將這個(gè)工作,以文本方式寫入/var/spool/at/目錄內(nèi),該工作便能等待 atd 這個(gè)服務(wù)的取用與執(zhí)行了。
[root@localhost ~]# cd /var/spool/at
[root@localhost at]# ll
total 0
drwx------. 2 root root 6 Aug 12 2018 spool
權(quán)限分配:/etc/at.allow和/etc/at.deny?這兩個(gè)文件來進(jìn)行 at 的使用限制
[root@localhost ~]# find /etc/ -name "*.deny"
/etc/hosts.deny
/etc/cron.deny
/etc/at.deny
*:任意字符重復(fù)任意多次
?:重復(fù)1次以上
{n1..n5}:連續(xù)的n1-n5
{n1,n3}:n1,n3文件,不連續(xù)
<2> 文件使用權(quán)限
- 尋找到/etc/at.allow文件存在,寫在這個(gè)文件的用戶才能使用at命令
- /etc/at.allow不存在,則尋找/etc/at.deny文件,寫在該文件的用戶不能使用at命令
- 若兩個(gè)文件都不存在,那么只有root可以使用at命令
PS:假設(shè)系統(tǒng)上的所有用戶都是可信任的,所以允許所有人使用 at 命令,/etc/at.deny?文件為空,如果你想設(shè)置拒絕某人使用 at 命令,你可將該用戶寫入/etc/at.deny文件
<3> 命令格式:
附:命令的三個(gè)組成部分:what,how,who
- cmd? -->? what,做什么
- option? -->? how,如何去做
- arg? -->? who,對誰做
例:建立郵件收發(fā)
<1> 下載sendmail和mailx軟件
[root@localhost at]# yum install sendmail -y
[root@localhost at]# yum install mailx -y
<2> 啟動(dòng)sendmail
[root@localhost ~]# systemctl start sendmail
<3> 發(fā)送郵件
[root@localhost ~]# echo "this is a first email" | mail -s "email" student
發(fā)送對象為:student
發(fā)送郵件的命令:mail
設(shè)置郵件標(biāo)題:-s
郵件內(nèi)容為:"this is a first email"
<4> 查看接收情況
[root@localhost ~]# su - student
[student@localhost ~]$ mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/student": 1 message 1 new
>N 1 root Sun Jun 4 11:52 21/862 "email"
&
<5> 到/etc/mail.rc文件末尾進(jìn)行添加內(nèi)容
vim /etc/mail.rc(G:到文件尾部)
# 開啟ssl
set ssl-verify=ignore
# 下方輸入證書目錄,為centos系統(tǒng)證書默認(rèn)位置,自行生成證書并指定
set nss-config-dir=/etc/pki/nssdb
# 下方填入配置的第三方smtp服務(wù)器的地址以及端口號,如果使用云服務(wù)器,安全組需要開放465端口(入口和出口)
set smtp=smtps://smtp.163.com:465
# 認(rèn)證方式
set smtp-auth=login
# 下方輸入用于發(fā)送郵件的郵箱賬號
set smtp-auth-user=xxxx@163.com
# 下方輸入上方郵箱的客戶端授權(quán)碼
set smtp-auth-password=XXXXXXXXXX
# 設(shè)置發(fā)信人的郵箱和昵稱
set from=xxxx@163.com
<6> 發(fā)送郵件
echo "this is a first email" | mail -s "email" xxxx@163.com
命令:at [參數(shù)] [時(shí)間]
參數(shù) |
說明 |
-m |
當(dāng)任務(wù)完成之后,即使沒有標(biāo)準(zhǔn)輸出,將給用戶發(fā)送郵件 |
-l |
atq的別名,可列出目前系統(tǒng)上面的所有該用戶的at調(diào)度 |
-d |
atrm的別名,可以取消一個(gè)在at調(diào)度中的工作 |
-v(verbose) |
使用較明顯的時(shí)間格式,列出at調(diào)度中的任務(wù)列表 |
-c |
可以列出后面接的該項(xiàng)工作的實(shí)際命令內(nèi)容 |
-f |
從文件中讀取作業(yè) |
時(shí)間格式:
參數(shù) |
說明 |
HH:MM |
在今天的HH小時(shí)MM分鐘執(zhí)行,如果今天的這個(gè)時(shí)間點(diǎn)已經(jīng)過了,則明天執(zhí)行 |
HH:MM YYYY-MM-DD |
強(qiáng)制規(guī)定在某年某月的某一天的特殊時(shí)刻進(jìn)行該工作 |
now + 2 minutes |
從現(xiàn)在開始幾分鐘minutes, hours, days, or weeks |
(2)示例:
例一:設(shè)置定時(shí)任務(wù)
<1> 提前在文件中輸入文字
[root@localhost ~]# echo "1234" > /root/20230605/at_task
[root@localhost ~]# more at_task
more: stat of at_task failed: No such file or directory
[root@localhost ~]# cd /root/20230605/
[root@localhost 20230605]# more at_task
1234
<2> 設(shè)置定時(shí)任務(wù)
[root@localhost ~]# at now + 2 minutes
warning: commands will be executed using /bin/sh
at> echo "5678" > /root/20230605/at_task
at> <EOT>
job 2 at Mon Jun 5 09:21:00 2023
(ctrl+d -- 結(jié)束輸入)
<3> 查看文件
[root@localhost ~]# cd /root/20230605/
[root@localhost 20230605]# more at_task
5678
例二:命令使用
-l
[root@localhost ~]# at now + 2 minutes
warning: commands will be executed using /bin/sh
at> wall hello
at> <EOT>
job 3 at Mon Jun 5 09:27:00 2023
[root@localhost ~]# at -l
4 Mon Jun 5 09:27:00 2023 a root
[root@localhost ~]# atq
4 Mon Jun 5 09:27:00 2023 a root
-d
[root@localhost ~]# at -l
4 Mon Jun 5 09:32:00 2023 a root
[root@localhost ~]# at -d 4
[root@localhost ~]# at -l
循環(huán)執(zhí)行的例行性工作
(1)命令:crontab -> crond
循環(huán)執(zhí)行的例行性工作調(diào)度是由crond這個(gè)系統(tǒng)服務(wù)來控制的。同樣,我們也可以限制使用crontab的用戶賬號。
<1> 使用流程
使用 crontab?命令來生成所要運(yùn)行的工作,每一項(xiàng)工作都會被記錄到/var/log/cron這個(gè)日志文件中,該工作便能等待 crontab?這個(gè)服務(wù)的取用與執(zhí)行了。
<2> 文件使用權(quán)限
- /etc/cron.allow?將可以使用 crontab 的賬號寫入其中,若不在該文件內(nèi)的用戶 則不可使用?crontab
- /etc/cron.deny?將不可以使用 crontab 的賬號寫入其中,若不在該文件內(nèi)的用 戶則可使用 crontab。
- 當(dāng)用戶使用 crontab 新建工作調(diào)度之后,該項(xiàng)工作就會被記錄到/var/spool/cron/里面
<3> 命令格式:
命令:crontab [-u user] [-l | -r | -e]
參數(shù) |
說明 |
-u |
只有 root 才能進(jìn)行這個(gè)任務(wù),幫某個(gè)用戶新建/刪除 crontab |
-e |
編輯 crontab 的工作內(nèi)容 |
-l |
查閱 crontab 的工作內(nèi)容 |
-r |
刪除所有的 crontab 的工作內(nèi)容 |
編輯crontab:
[root@localhost ~]# crontab -e (相當(dāng)于使用vim打開了一個(gè)文件)
寫入6個(gè)字段:
(前5個(gè)字段:代表周期 --- 使用空格進(jìn)行分割)
第1個(gè)字段:分鐘:0-59
第2個(gè)字段:小時(shí):0-23
第3個(gè)字段:月中天:1-31
第4個(gè)字段:月份:1-12
第5個(gè)字段:星期:0-7. 0-7都代表星期天
第6個(gè)字段:執(zhí)行一個(gè)命令(任務(wù))
代表意義 |
分鐘 |
小時(shí) |
日期 |
月份 |
周 |
命令 |
數(shù)字范圍 |
0-59 |
0-23 |
1-31 |
1-12 |
0-7<br/>0和7都代表周日 |
執(zhí)行的命令 |
特殊字符:
特殊字符 |
含義 |
* |
代表任何時(shí)刻 |
, |
代表分隔時(shí)段 |
- |
代表一段時(shí)間范圍 |
/數(shù)字 |
指定時(shí)間的間隔頻率,例如每 3 分鐘進(jìn)行一次,*/3文章來源:http://www.zghlxwxcb.cn/news/detail-478061.html |
(2)案例
編輯每周1-5早上八點(diǎn)的鬧鐘(root/student)文章來源地址http://www.zghlxwxcb.cn/news/detail-478061.html
[root@localhost ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@localhost ~]# crontab -l
0 8 * * 1-5 echo "alarm clock" >> /root/cron_task
[root@localhost ~]# ls -l /var/spool/cron/ --- 查看文件內(nèi)容
total 4
-rw-------. 1 root root 51 Jun 5 10:41 root
[root@localhost ~]# cat /var/spool/cron/root
0 8 * * 1-5 echo "alarm clock" >> /root/cron_task
[root@localhost ~]# crontab -u student -e
no crontab for student - using an empty one
crontab: installing new crontab
[root@localhost ~]# crontab -u student -l
0 8 * * 1-5 echo "alarm clock" >> /root/cron_task
到了這里,關(guān)于linux進(jìn)階 --- 環(huán)境搭建、單一執(zhí)行、循環(huán)執(zhí)行的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!