站長常用Shell指令碼整理分享11 20

2021-10-07 01:28:27 字數 4724 閱讀 1134

#!/bin/bash

# 編寫 nginx 啟動指令碼

# 本指令碼編寫完成後,放置在/etc/init.d/目錄下,就可以被 linux 系統自動識別到該指令碼

# 如果本指令碼名為/etc/init.d/nginx,則 service nginx start 就可以啟動該服務

# service nginx stop 就可以關閉服務

# service nginx restart 可以重啟服務

# service nginx status 可以檢視服務狀態

program=/usr/local/nginx/sbin/nginx

pid=/usr/local/nginx/logs/nginx.pid

start(

)status(

)case

$1in

start)

start;

;stop)

stop;

;restart)

stop

sleep 1

start;

;status)

status;;*)

echo

"你輸入的語法格式錯誤"

esac

#!/bin/bash

# 自動對磁碟分割槽、格式化、掛載

# 對虛擬機器的 vdb 磁碟進行分割槽格式化,使用《將需要的分割槽指令匯入給程式 fdisk

# n(新建分割槽),p(建立主分割槽),1(分割槽編號為 1),兩個空白行(兩個回車,相當於將整個磁碟分乙個區)

# 注意:1 後面的兩個回車(空白行)是必須的!

fdisk /dev/vdb <<

eofnp1

wqeof#格式化剛剛建立好的分割槽

mkfs.xfs /dev/vdb1

#建立掛載點目錄

if[ -e /data ]

;then

exit

fimkdir /data

#自動掛載剛剛建立的分割槽,並設定開機自動掛載該分割槽

echo

'/dev/vdb1 /data xfs defaults 1 2'

>> /etc/fstab

mount -a

#!/bin/bash

# 自動優化 linux 核心引數

#指令碼針對 rhel7

cat>> /usr/lib/sysctl.d/00‐system.conf <<

eoffs.file‐max=65535

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_synack_retries = 5

net.ipv4.tcp_syn_retries = 5

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_fin_timeout = 30

#net.ipv4.tcp_keepalive_time = 120

net.ipv4.ip_local_port_range = 1024 65535

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 5010 641280 5010 128

net.core.wmem_default=262144

net.core.wmem_max=262144

net.core.rmem_default=4194304

net.core.rmem_max=4194304

net.ipv4.tcp_fin_timeout = 10

net.ipv4.tcp_keepalive_time = 30

net.ipv4.tcp_window_scaling = 0

net.ipv4.tcp_sack = 0

eof

sysctl –p

#mkdir  /data/scripts

#vim /data/scripts/nginx_log.sh

#!/bin/bash

# 切割 nginx 日誌檔案(防止單個檔案過大,後期處理很困難)

logs_path=

"/usr/local/nginx/logs/"

mv$access.log $access_$(

date -d "yesterday" +"%y%m%d"

).log

kill -usr1 `

cat /usr/local/nginx/logs/nginx.pid`

# chmod +x /data/scripts/nginx_log.sh

# crontab ‐e #指令碼寫完後,將指令碼放入計畫任務每天執行一次指令碼

0 1 * * * /data/scripts/nginx_log.sh

#!/bin/bash

# 檢測 mysql 資料庫連線數量

# 本指令碼每 2 秒檢測一次 mysql 併發連線數,可以將本指令碼設定為開機啟動指令碼,或在特定時間段執行

# 以滿足對 mysql 資料庫的監控需求,檢視 mysql 連線是否正常

# 本案例中的使用者名稱和密碼需要根據實際情況修改後方可使用

log_file=/var/log/mysql_count.log

user=root

passwd=123456

while:do

sleep 2

count=

`mysqladmin -u "$user" -p "$passwd" status |

awk''

` echo

"`date +%y‐%m‐%d`

併發連線數為:$count"

>>

$log_file

done

#!/bin/bash

# 根據 md5 校驗碼,檢測檔案是否被修改

# 本示例指令碼檢測的是/etc 目錄下所有的 conf 結尾的檔案,根據實際情況,您可以修改為其他目錄或檔案

# 本指令碼在目標資料沒有被修改時執行一次,當懷疑資料被人篡改,再執行一次

# 將兩次執行的結果做對比,md5 碼發生改變的檔案,就是被人篡改的檔案

for i in

$(ls /etc/*.conf)

do md5sum "$i"

>> /var/log/conf_file.log

done

#!/bin/bash

# 檢測 mysql 服務是否存活

# host 為你需要檢測的 mysql 主機的 ip 位址,user 為 mysql 賬戶名,passwd 為密碼

# 這些資訊需要根據實際情況修改後方可使用

host=192.168.51.198

user=root

passwd=123456

mysqladmin -h '$host' -u '$user' -p'$passwd'

ping

&>/dev/nullif[

$? -eq 0 ]

then

echo

"mysql is up"

else

echo

"mysql is down"

fi

#!/bin/bash

# 備份 mysql 的 shell 指令碼(mysqldump版本)

# 定義變數 user(資料庫使用者名稱),passwd(資料庫密碼),date(備份的時間標籤)

# dbname(需要備份的資料庫名稱,根據實際需求需要修改該變數的值,預設備份 mysql 資料庫)

user=root

passwd=123456

dbname=mysql

date=

$(date +%y%m%d)

# 測試備份目錄是否存在,不存在則自動建立該目錄

[! -d /mysqlbackup ]

&&mkdir /mysqlbackup

# 使用 mysqldump 命令備份資料庫

mysqldump -u "$user" -p "$passwd"

"$dbname"

> /mysqlbackup/"$dbname"-$.sql

#!/bin/bash

# 將檔案中所有的小寫字母轉換為大寫字母

# $1是位置引數,是你需要轉換大小寫字母的檔名稱

# 執行指令碼,給定乙個檔名作為引數,指令碼就會將該檔案中所有的小寫字母轉換為大寫字母

tr"[a‐z]"

"[a‐z]"

<

$1

#!/bin/bash

# 非互動自動生成 ssh 金鑰檔案

# ‐t 指定 ssh 金鑰的演算法為 rsa 演算法;‐n 設定金鑰的密碼為空;‐f 指定生成的金鑰檔案》存放在**

rm -rf ~/.ssh/

ssh‐keygen -t rsa -n '' -f ~/.ssh/id_rsa

站長常用Shell指令碼整理分享1 10

bin bash 編寫hello world指令碼 echo hello world bin bash 統計當前 linux 系統中可以登入計算機的賬戶數量 grep bash etc passwd wc l bin bash 編寫批量修改副檔名指令碼,如批量將 txt 檔案修改為 doc 檔案 執...

站長常用Shell指令碼整理分享31 40

bin bash 顯示當前計算機中所有賬戶的使用者名稱 下面使用3種不同的方式列出計算機中所有賬戶的使用者名稱 指定以 為分隔符,列印 etc passwd 檔案的第 1 列 awk f etc passwd 指定以 為分隔符,列印 etc passwd 檔案的第 1 列 cut d f1 etc ...

站長常用Shell指令碼整理分享51 59

bin bash 一鍵配置 vnc 遠端桌面伺服器 無密碼版本 指令碼配置的 vnc 伺服器,客戶端無需密碼即可連線 客戶端僅有檢視遠端桌面的許可權,沒有滑鼠和鍵盤的操作許可權 rpm quiet q tigervnc serverif ne 0 then yum y tigervnc server...