linux下執行指令碼

2021-08-14 01:40:21 字數 1435 閱讀 1740

第一次寫指令碼還是有點小開森~

執行檢查apache伺服器是否執行的指令碼,每個半小時執行一次

新建乙個指令碼,名字為checkrun.sh

touch checkrun.sh
然後有vim進行編輯,所有命令都要在該檔案下執行

vim checkrun.sh
輸入i進行編輯

編輯檔案的時候查了好多方式

ps aux | grep httpd
方式,但是執行出來apache停了和沒停是一樣的反應,

因為伺服器中的apache占用8081埠,所以通過lsof –i:8081進行監測

具體**如下:

test=$(lsof -i:8081)

if [ -n "$test" ]

then

echo "apache is start"

else

/home/yushan/y/./ctlscript.sh start

echo "restart"

fi

-n 為非空的時候返回真,代表伺服器正在執行。

編輯未完成後使用esc退出,並輸入:wq進行儲存。如果不儲存則輸入:q!

最後回車結束

要讓指令碼每隔半小時執行一次

執行crontab –e ,第一次進行編輯,所以需要選擇編輯器,由於沒有經驗選擇了提示的esaiest,後面發現應該選擇3的

發現完全不會使用nano,又轉回來sudo select -editor

或者使用export editor=vim

然後選擇3,在檔案中新增

*/30 * * * * sh/home/yushan/scriptme/checkrun.sh
隔半小時執行一次

截圖**

檢視是否執行,進入etc/rsyslog.d

對50*那個檔案進行修改,將cron的只是去掉

然後重啟日誌服務 service syslog restart

檢視執行後進行日誌記錄關閉,畢竟浪費空間

然後回到原來的使用者許可權,從root中進入的cron檔案並未被修改

su  yushan(yushan

為使用者名稱)

(sudo su進入到root使用者下)

在另外乙個伺服器上結果test=$(ps aux | grep httpd |grep -v grep)可以執行,但是不能執行lsof,保留疑惑

刪除資料夾命令 rm –rf 檔名

有關linux下執行指令碼

linux執行指令碼命令時前面加.還有的指令碼要加 哪位大俠給解釋一下,謝謝 還有的指令碼要加 不能執行,非要輸入 指令碼名 這個是明白的 表示當前目錄,這是因為linux的預設搜尋目錄裡沒有當前目錄,所以如果你在當前目錄需要執行程式就要加上路徑,用全路徑代替也是可以的。第乙個點在 bash 內相當...

Linux執行指令碼

首先指令碼需要有執行許可權 chmod u x file.sh 執行指令碼有三種方法 1.file.sh 特點 開啟bash子程序來執行,也就是開啟額外的程序來進行,不影響原程序的變數 配置等 2.bash file.sh 特點 和.file.sh相同 3.source file.sh 或者 fil...

linux執行指令碼

linux下開機以某乙個使用者執行指令碼 etc rc.local新增想要被執行的命令即可 預設是以root使用者執行 2 以期望的使用者執行命令 su c ls l myfile.txt guowei 解釋 其中需要被執行的命令是 ls l myfile.txt 期望的使用者的 guowei,表示...