Linux之常用Shell指令碼總結

2022-10-11 14:45:10 字數 2198 閱讀 2648

一、簡介

本文將總結一些常用的shell指令碼,方便以後工作中使用。

二、shell指令碼

【a】定期備份mysql資料庫,需結合cronb定時任務排程實現。

#!/bin/bash

#首先宣告一些自定義變數

#資料庫備份路徑

db_bak_path=/data/db

#當前時間

currenttime=$(date +%y%m%d_%h%m%s)

#備份資料庫名稱

db_name=test_db_bak

#使用者名稱

db_username=root

#密碼db_password=0905

#主機名稱

db_hostname=localhost

echo "*****==資料庫備份開始【備份路徑: $db_bak_path/$currenttime.tar.gz 】*****==="

#建立備份的路徑,如果目錄不存在,則先建立備份目錄

if [ ! -d "$db_bak_path/$currenttime" ]; then

echo "備份目錄不存在,準備建立備份目錄"

#建立備份目錄

mkdir -p "$db_bak_path/$currenttime"

else

echo "備份目錄已存在"

fi#另一種比較簡便的寫法(前面的命令為true,才執行 &&後面的命令)

#[ ! -d "$db_bak_path/$currenttime" ] && mkdir -p "$db_bak_path/$currenttime"

#使用mysqldump備份mysql資料庫,並進行gzip壓縮

mysqldump -u$ -p$ --host=$db_hostname $db_name | gzip > $db_bak_path/$currenttime/$currenttime.sql.gz

#tar壓縮

cd $db_bak_path

tar -zcvf $currenttime.tar.gz $currenttime

#刪除臨時目錄

rm -rf $db_bak_path/$currenttime

#刪除乙個月之前的資料庫備份檔案

find $db_bak_path -mtime +30 -name "*.tar.gz" -exec rm -rf \;

#資料庫備份完成

echo "*****===資料庫備份成功【備份路徑: $db_bak_path/$currenttime.tar.gz】**********="

【b】批量建立linux使用者,並且屬於同乙個使用者組wsh,要求使用者名稱和密碼一致。

#!/bin/bash

#批量建立linux使用者(user1 - user5),並且屬於同乙個使用者組wsh,要求使用者名稱和密碼一致

for i in $(seq 1 5)

do#useradd 使用者名稱 -g 使用者組名

useradd user$i -g wsh

#修改密碼

echo user$i | passwd user$i --stdin

done

【c】將/test目錄下大於10k的檔案刪除(常用於垃圾**)

#!/bin/bash

#將/test中的大於10k的檔案刪除

for tmp in $(ls /test)

doif [ -f $tmp ]; then

if [ $(ls -l $tmp|awk '') -gt 10000 ]; then

#刪除檔案

rm -rf $tmp

fifi

done

【d】按時批量清除n天前檔案(需要結合cronb定時任務排程實現)

#!/bin/bash

#定時清理30天之前的/data/目錄下的字尾為.txt的文:wq!i件

find /data/ -mtime +30 -name "*.txt" -exec rm -rf {} \;

#/data:準備要進行清理的目錄; 

#-mtime:標準語句寫法+30:查詢30天前的檔案;

#".txt"表示查詢擴充套件名為.txt的所有檔案;

#-exec:固定寫法 ;

#rm -rf:強制刪除檔案,包括目錄 ;

#{} \ :將find的結果放到裡面;

--------------------- 

linux 常用shell指令碼

1 偵測程式控制程式碼洩漏 對程序取樣資料3000次,每次間隔10秒,監控程序開啟控制代碼的情況,若出現持續上公升的情況,說明程序異常 bin sh set x echo total handler psid ps ef grep 1 head 1 awk count 0 while count l...

Linux之shell指令碼

1.shell是系統的使用者介面,提供了使用者與核心進行互動操作的一種介面。它接收使用者輸入的命令並把它送入核心去執行。2.每個linux系統的使用者可以擁有他自己的使用者介面或shell,用以滿足他們自己專門的shell需要。同linux本身一樣,shell也有多種不同的版本 比如bash或sh ...

linux之shell指令碼

shell 是指一種應用程式,這個應用程式提供了乙個介面,使用者通過這個介面訪問作業系統核心的服務,是指令碼中命令的直譯器。1 記錄命令執行的過程和執行邏輯,以便以後重複執行 2 指令碼可以批量處理主機 3 指令碼可以定時處理主機。bin bash 幻數 指令碼執行的直譯器,最優先執行vim自動新增...