网站黄色在线观看视频,男人和女人操逼有免费的视频吗2018高清,91熟女丨老女人丨高潮丰满,丝袜高潮流白浆潮喷在线播放

中國站

中國站

國際版

聯(lián)系我們

400-002-9968

售前咨詢

售后服務(wù)

注冊 登錄

博客 > 10條有用的?Linux 腳本,建議收藏

10條有用的?Linux 腳本,建議收藏

  • 標(biāo)簽:
  • ?Linux 腳本
  • Linux
  • Linux Shell 腳本
  • IT運(yùn)維

瀏覽量:2344次評(píng)論:0次

作者:銳成網(wǎng)絡(luò)整理時(shí)間:2024-05-10 17:00:35

Linux 腳本?準(zhǔn)確的說叫 Linux Shell 腳本,Shell 腳本是一種被設(shè)計(jì)用來運(yùn)行命令行解釋器,他是 Linux 系統(tǒng)的一大特色之一。命令行是 Linux 系統(tǒng)中一種非常重要的交互方式,而它的實(shí)現(xiàn)基于 Linux 內(nèi)核和 Shell 程序,為用戶提供了強(qiáng)大和靈活的操作方式。

使用 Linux 系統(tǒng)會(huì)點(diǎn) Linux 腳本非常有用,它可以讓你的工作即輕松又高效!下面是收集整理的10條有用的 Linux 腳本,建議收藏!

10條有用的?Linux 腳本,建議收藏

1、列出排名前10的內(nèi)存占用進(jìn)程

ps aux | sort -rk 4,4 | head -n 10  

2、iptables 自動(dòng)屏蔽訪問網(wǎng)站頻繁的IP

使用場景:針對(duì)惡意訪問網(wǎng)站情況

根據(jù)訪問日志(以 nginx 的 logs 中記錄訪問的 access.log 日志文件為例,檢測短期訪問大于100的IP,并使用iptables命令進(jìn)行屏蔽,同時(shí)將禁用的IP放到/tmp/deny_ip.log文件中)

#!/bin/bash  
DATE=$(date +%d/%b/%Y:%H:%M)  
LOG_FILE=/usr/local/nginx/logs/demo2.access.log  
ABNORMAL_IP=$(tail -n5000 $LOG_FILE |grep $DATE |awk '{a[$1]++}END{for(i in a)if(a[i]>100)print i}')  
for IP in $ABNORMAL_IP; do  
    if [ $(iptables -vnL |grep -c "$IP") -eq 0 ]; then  
        iptables -I INPUT -s $IP -j DROP  
        echo "$(date +'%F_%T') $IP" >> /tmp/deny_ip.log  
    fi  
don

3、自動(dòng)發(fā)布 Java 項(xiàng)目(Tomcat)

#!/bin/bash  
DATE=$(date +%F_%T)  
  
TOMCAT_NAME=$1  
TOMCAT_DIR=/usr/local/$TOMCAT_NAME  
ROOT=$TOMCAT_DIR/webapps/ROOT  
  
BACKUP_DIR=/data/backup  
WORK_DIR=/tmp  
PROJECT_NAME=tomcat-java-demo  
  
# 拉取代碼  
cd $WORK_DIR  
if [ ! -d $PROJECT_NAME ]; then  
   git clone https://github.com/xxxx/tomcat-java-demo  
   cd $PROJECT_NAME  
else  
   cd $PROJECT_NAME  
   git pull  
fi  
  
# 構(gòu)建  
mvn clean package -Dmaven.test.skip=true  
if [ $? -ne 0 ]; then  
   echo "maven build failure!"  
   exit 1  
fi  
  
# 部署  
TOMCAT_PID=$(ps -ef |grep "$TOMCAT_NAME" |egrep -v "grep|$$" |awk 'NR==1{print $2}')  
[ -n "$TOMCAT_PID" ] && kill -9 $TOMCAT_PID  
[ -d $ROOT ] && mv $ROOT $BACKUP_DIR/${TOMCAT_NAME}_ROOT$DATE  
unzip $WORK_DIR/$PROJECT_NAME/target/*.war -d $ROOT  
$TOMCAT_DIR/bin/startup.sh

4、Nginx 訪問日志分析腳本

#!/bin/bash  
# 日志格式: $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"  
LOG_FILE=$1  
echo "統(tǒng)計(jì)訪問最多的10個(gè)IP"  
awk '{a[$1]++}END{print "UV:",length(a);for(v in a)print v,a[v]}' $LOG_FILE |sort -k2 -nr |head -10  
echo "----------------------"  
  
echo "統(tǒng)計(jì)時(shí)間段訪問最多的IP"  
awk '$4>="[01/Dec/2018:13:20:25" && $4<="[27/Nov/2018:16:20:49"{a[$1]++}END{for(v in a)print v,a[v]}' $LOG_FILE |sort -k2 -nr|head -10  
echo "----------------------"  
  
echo "統(tǒng)計(jì)訪問最多的10個(gè)頁面"  
awk '{a[$7]++}END{print "PV:",length(a);for(v in a){if(a[v]>10)print v,a[v]}}' $LOG_FILE |sort -k2 -nr  
echo "----------------------"  
  
echo "統(tǒng)計(jì)訪問頁面狀態(tài)碼數(shù)量"  
awk '{a[$7" "$9]++}END{for(v in a){if(a[v]>5)print v,a[v]}}'  

5、查看網(wǎng)卡實(shí)時(shí)流量腳本

#!/bin/bash  
NIC=$1  
echo -e " In ------ Out"  
while true; do  
    OLD_IN=$(awk '$0~"'$NIC'"{print $2}' /proc/net/dev)  
    OLD_OUT=$(awk '$0~"'$NIC'"{print $10}' /proc/net/dev)  
    sleep 1  
    NEW_IN=$(awk  '$0~"'$NIC'"{print $2}' /proc/net/dev)  
    NEW_OUT=$(awk '$0~"'$NIC'"{print $10}' /proc/net/dev)  
    IN=$(printf "%.1f%s" "$((($NEW_IN-$OLD_IN)/1024))" "KB/s")  
    OUT=$(printf "%.1f%s" "$((($NEW_OUT-$OLD_OUT)/1024))" "KB/s")  
    echo "$IN $OUT"  
    sleep 1  
done  

6、批量檢測網(wǎng)站是否異常并郵件通知

#!/bin/bash    
URL_LIST="www.baidu.com www.ctnrs.com www.der-matech.net.cn www.der-matech.com.cn www.der-matech.cn www.der-matech.top www.der-matech.org"  
for URL in $URL_LIST; do  
    FAIL_COUNT=0  
    for ((i=1;i<=3;i++)); do  
        HTTP_CODE=$(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" $URL)  
        if [ $HTTP_CODE -eq 200 ]; then  
            echo "$URL OK"  
            break  
        else  
            echo "$URL retry $FAIL_COUNT"  
            let FAIL_COUNT++  
        fi  
    done  
    if [ $FAIL_COUNT -eq 3 ]; then  
        echo "Warning: $URL Access failure!"  
  echo "網(wǎng)站$URL壞掉,請及時(shí)處理" | mail -s "$URL網(wǎng)站高危" xxxxx@163.com  
    fi  
done  

7、目錄入侵檢測與告警

#!/bin/bash  
  
MON_DIR=/opt  
inotifywait -mqr --format %f -e create $MON_DIR |\  
while read files; do  
   #同步文件  
   rsync -avz /opt /tmp/opt  
  #檢測文件是否被修改  
   #echo "$(date +'%F %T') create $files" | mail -s "dir monitor" xxx@163.com  
done  

8、一鍵查看服務(wù)器利用率

#!/bin/bash  
function cpu(){  
  
 util=$(vmstat | awk '{if(NR==3)print $13+$14}')  
 iowait=$(vmstat | awk '{if(NR==3)print $16}')  
 echo "CPU -使用率:${util}% ,等待磁盤IO相應(yīng)使用率:${iowait}:${iowait}%"  
  
}  
function memory (){  
  
 total=`free -m |awk '{if(NR==2)printf "%.1f",$2/1024}'`  
    used=`free -m |awk '{if(NR==2) printf "%.1f",($2-$NF)/1024}'`  
    available=`free -m |awk '{if(NR==2) printf "%.1f",$NF/1024}'`  
    echo "內(nèi)存 - 總大小: ${total}G , 使用: ${used}G , 剩余: ${available}G"  
}  
disk(){  
  
 fs=$(df -h |awk '/^\/dev/{print $1}')  
    for p in $fs; do  
        mounted=$(df -h |awk '$1=="'$p'"{print $NF}')  
        size=$(df -h |awk '$1=="'$p'"{print $2}')  
        used=$(df -h |awk '$1=="'$p'"{print $3}')  
        used_percent=$(df -h |awk '$1=="'$p'"{print $5}')  
        echo "硬盤 - 掛載點(diǎn): $mounted , 總大小: $size , 使用: $used , 使用率: $used_percent"  
    done  
  
}  
function tcp_status() {  
    summary=$(ss -antp |awk '{status[$1]++}END{for(i in status) printf i":"status[i]" "}')  
    echo "TCP連接狀態(tài) - $summary"  
}  
cpu  
memory  
disk  
tcp_status

9、以 root 身份運(yùn)行整個(gè) shell 腳本

將 sudo 放在 shell 腳本的首中,會(huì)以 root 身份運(yùn)行整個(gè)程序。對(duì)設(shè)計(jì)用于例如的腳本很有用 自動(dòng)化系統(tǒng)升級(jí)或包管理器包裝器——不再需要用 sudo 預(yù)先準(zhǔn)備一切

#!/usr/bin/sudo /bin/bash

10、將視頻轉(zhuǎn)換為gif動(dòng)圖

需要系統(tǒng)安裝 ffmpeg , ubuntu 中可以通過 sudo apt install ffmpeg 安裝。

ffmpeg -ss 00:00:03 -t 3 -i test.mov -s 640x360 -r  15  dongtu.gif  

  • -ss 00:00:03 表示從第 00 分鐘 03 秒開始制作 GIF,如果你想從第 9 秒開始,則輸入 -ss 00:00:09,或者 -ss 9,支持小數(shù)點(diǎn),所以也可以輸入 -ss 00:00:11.3,或者 -ss 34.6 之類的,如果不加該命令,則從 0 秒開始制作;
  • -t 3 表示把持續(xù) 3 秒的視頻轉(zhuǎn)換為 GIF,你可以把它改為其他數(shù)字,例如 1.5,7 等等,時(shí)間越長,GIF 體積越大,如果不加該命令,則把整個(gè)視頻轉(zhuǎn)為 GIF;
  • -i 表示 invert 的意思吧,轉(zhuǎn)換;
  • test.mov 就是你要轉(zhuǎn)換的視頻,名稱最好不要有中文,不要留空格,支持多種視頻格式;
  • -s 640x360 是 GIF 的分辨率,視頻分辨率可能是 1080p,但你制作的 GIF 可以轉(zhuǎn)為 720p 等,允許自定義,分辨率越高體積越大,如果不加該命令,則保持分辨率不變;
  • -r “15” 表示幀率,網(wǎng)上下載的視頻幀率通常為 24,設(shè)為 15 效果挺好了,幀率越高體積越大,如果不加該命令,則保持幀率不變;
  • dongtu.gif:就是你要輸出的文件,你也可以把它命名為 hello.gif 等等。

通過使用這10個(gè)有用的Linux腳本,您可以大大提高工作的效率,簡化繁瑣的任務(wù),無論您是一名開發(fā)人員、系統(tǒng)管理員還是網(wǎng)絡(luò)管理員,這些腳本都會(huì)成為您工作的得力助手。

重要聲明:本文來自Linux265,經(jīng)授權(quán)轉(zhuǎn)載,版權(quán)歸原作者所有,不代表銳成觀點(diǎn),轉(zhuǎn)載的目的在于傳遞更多知識(shí)和信息。

我的評(píng)論

還未登錄?點(diǎn)擊登錄

微信掃碼溝通
微信掃碼溝通

微信掃碼溝通

AI
return head