一、簡介
本文將總結一些常用的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自動新增...