Linux中写脚本,同时去开启我们自己设定的多个服务(含定时脚本实现)
場景介紹:
在Linux中,我們通常開啟服務(wù)需要使用systemctl start 服務(wù)名 命令,這樣,如果開啟一個(gè)服務(wù)還好,但是如果同時(shí)開啟多個(gè)服務(wù),難免會(huì)感到麻煩,這時(shí),我們可以自定義一個(gè)腳本,去把多個(gè)開啟服務(wù)的命令集合到一起,我們只需要執(zhí)行腳本 即可快速開啟多個(gè)服務(wù)。
一、代碼
cd /? ? #進(jìn)入根目錄
mkdir myScript? ? ?#創(chuàng)建文件夾
vim init.sh? ? ?#編輯init.sh,然后保存
#!/bin/sh #用于開機(jī)后,快速同時(shí)啟動(dòng)指定服務(wù)的腳本 systemctl start nginx systemctl start redis-server echo nginx和redis已經(jīng)啟動(dòng)完畢 systemctl status nginx systemctl status redis-serverchmod 777 init.sh? ? #賦予文件執(zhí)行權(quán)限
/myScript/init.sh? ? #執(zhí)行init.sh
注:這里,我在腳本里定義了開啟nginx和redis服務(wù),并且開啟之后輸出提示語句,查詢nginx和redis狀態(tài),確認(rèn)開啟完畢。
?
二、效果展示
注:直接執(zhí)行指定目錄中的指定文件
?
三、Linux寫定時(shí)腳本
在業(yè)務(wù)場景中,定時(shí)腳本也會(huì)時(shí)有用到,這里再額外介紹下怎么寫定時(shí)腳本
注:這里使用的是crontab
1、crontab -e? #寫定時(shí)任務(wù)
2、* * * * * /myScript/task_test.sh #在文件中添加這一行,然后保存(每分鐘執(zhí)行一次task_test.sh文件)
3、task_test.sh代碼
?
#!/bin/sh echo yes >> /data/task_test.txt注意:編輯完task_test.sh,需要賦予文件權(quán)限,chmod 777??/myScript/task_test.sh
4、過幾分鐘后,查看/data/task_test.txt
說明定時(shí)任務(wù)執(zhí)行成功。
?
注:
1、crontab參數(shù)
-e 編輯該用戶的計(jì)時(shí)器設(shè)置。
-l 列出該用戶的計(jì)時(shí)器設(shè)置。
-r 刪除該用戶的計(jì)時(shí)器設(shè)置。
-u<用戶名稱> 指定要設(shè)定計(jì)時(shí)器的用戶名稱。
?
2、crontab格式
crontab 格式:分鐘? ?小時(shí)? ?日? ?月? ?周? ?command
?
第1列表示分鐘 0~59 (每分鐘用*或者 */1表示)
第2列表示小時(shí) 0~23(0表示0點(diǎn))
第3列表示日期 1~31(5表示5號(hào))
第4列 表示月份 1~12(1表示1月份)
第5列表示星期 0~7(0或者7表示星期日)
第6列表示要執(zhí)行的命令(可以是系統(tǒng)命令,也可以是自己編寫的腳本文件)
?
?
3、在以上各個(gè)字段中,還可以使用以下特殊字符:
星號(hào)(*):代表所有可能的值,例如month字段如果是星號(hào),則表示在滿足其它字段的制約條件后每月都執(zhí)行該命令操作。
逗號(hào)(,):可以用逗號(hào)隔開的值指定一個(gè)列表范圍,例如,“1,2,5,7,8,9”
中杠(-):可以用整數(shù)之間的中杠表示一個(gè)整數(shù)范圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時(shí)間的間隔頻率,例如“0-23/2”表示每兩小時(shí)執(zhí)行一次。同時(shí)正斜線可以和星號(hào)一起使用,例如*/10,如果用在minute字段,表示每十分鐘執(zhí)行一次。
?
示例:
30 21 * * *?/myScript/task_test.sh? 就表示 每天的21:30執(zhí)行一次task_test.sh文件
30 21 5 * * /myScript/task_test.sh?就表示 每個(gè)月的5號(hào)21:30執(zhí)行一次task_test.sh文件
1 6 20 8 *?/myScript/task_test.sh?就表示 8月20號(hào)06:01執(zhí)行一次task_test.sh文件
30 2 * * 1,2,3,4,5 systemctl restart nginx 就表示 每個(gè)工作日的2:30重啟nginx服務(wù)
* 23-7/1 * * * systemctl restart smb? 就表示晚上11點(diǎn)到早上7點(diǎn)之間,每隔一小時(shí)重啟smb?
?
注:了解更多,可以訪問:https://www.cnblogs.com/intval/p/5763929.html
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Linux中写脚本,同时去开启我们自己设定的多个服务(含定时脚本实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 将域名绑定到ip上,并实现访问不同二级子
- 下一篇: Linux开启fileinfo扩展