国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線(xiàn)實(shí)戰(zhàn)洞察。

279個(gè)開(kāi)箱即用Shell腳本:從落地、選型到生產(chǎn)級(jí)改造避坑指南

279個(gè)開(kāi)箱即用Shell腳本:從落地、選型到生產(chǎn)級(jí)改造避坑指南 簡(jiǎn)介匯總279個(gè)可直接投入使用的Shell腳本應(yīng)用集覆蓋DDoS攻擊IP自動(dòng)屏蔽、Linux系統(tǒng)郵件告警、MySQL數(shù)據(jù)庫(kù)單/多循環(huán)備份、Nginx訪問(wèn)日志按天切割與深度分析、網(wǎng)卡實(shí)時(shí)流量監(jiān)控等高頻運(yùn)維場(chǎng)景。腳本邏輯清晰、關(guān)鍵命令注釋完整適合Linux/Unix系統(tǒng)管理員、運(yùn)維工程師及希望提升自動(dòng)化能力的初中級(jí)學(xué)習(xí)者參考可結(jié)合實(shí)際業(yè)務(wù)需求修改后部署。資源包內(nèi)共1個(gè)PDF文檔體積4.69MB便于快速瀏覽、檢索與離線(xiàn)學(xué)習(xí)當(dāng)前已有154人學(xué)習(xí)下載。內(nèi)容不僅有現(xiàn)成腳本代碼還梳理了日期獲取、日志分析、iptables策略、mysqldump備份、cron定時(shí)任務(wù)等核心技術(shù)點(diǎn)幫助讀者理解腳本背后的設(shè)計(jì)思路與排錯(cuò)途徑。對(duì)于需要快速構(gòu)建服務(wù)器安全防護(hù)、數(shù)據(jù)庫(kù)災(zāi)備和日志管理體系的團(tuán)隊(duì)這份資料具備較高實(shí)用價(jià)值。1. 279個(gè)開(kāi)箱即用的shell腳本治好的是“重復(fù)勞動(dòng)”焦慮不是“復(fù)雜問(wèn)題”執(zhí)念第一次拿到“279個(gè)開(kāi)箱即用的shell腳本”壓縮包時(shí)我的第一反應(yīng)是“這么多八成有擺設(shè)”。翻完關(guān)鍵腳本后發(fā)現(xiàn)它的價(jià)值不在單個(gè)腳本多聰明而在于把巡檢、日志、備份、網(wǎng)絡(luò)檢查這些最高頻的運(yùn)維場(chǎng)景統(tǒng)一成可以直接跑的形態(tài)。2024年新版腳本風(fēng)格更干凈變量、函數(shù)、退出碼的約定更一致這對(duì)批量投入使用的人來(lái)說(shuō)反而最值錢(qián)。這套東西適合日常維護(hù)幾十臺(tái)服務(wù)器的運(yùn)維、剛接手機(jī)器又不想從零養(yǎng)腳本庫(kù)的開(kāi)發(fā)者也適合交付時(shí)快速湊齊基礎(chǔ)檢查項(xiàng)的人。它解決的是重復(fù)勞動(dòng)不是復(fù)雜問(wèn)題。下面按“怎么落地、怎么選、怎么改、坑在哪”的順序把這套腳本真正用起來(lái)。2. 壓縮包到手怎么落地目錄規(guī)劃、環(huán)境準(zhǔn)備和首次運(yùn)行拿到279個(gè)腳本的壓縮包之后第一件要做的事不是立刻翻代碼而是先把目錄結(jié)構(gòu)立起來(lái)。腳本集合最大的隱患就是目錄亂腳本放在頂層、配置文件散落各處、日志不知道寫(xiě)到哪里一旦跑起來(lái)根本沒(méi)法維護(hù)。我一般會(huì)首先在服務(wù)器上建一個(gè)獨(dú)立目錄比如~/ops/shell-lib把整個(gè)集合按“可執(zhí)行腳本、公共函數(shù)、配置文件、日志、備份產(chǎn)物”拆成五塊。2.1 拿到手先定位先看目錄樹(shù)和說(shuō)明文檔先把壓縮包解開(kāi)然后用tree -L 2看結(jié)構(gòu)第一時(shí)間確定三件事腳本是不是按功能分子目錄了、有沒(méi)有公共函數(shù)文件、有沒(méi)有內(nèi)置的說(shuō)明文檔。很多腳本集合表面有279個(gè)文件實(shí)際有效腳本只有兩百多剩下的是配置文件、空目錄、說(shuō)明文檔甚至有幾個(gè)是同一個(gè)腳本的舊版本。mkdir -p ~/ops/shell-lib cd ~/ops/shell-lib # 解壓指令要和你實(shí)際拿到的包名一致 tar xzf shell-scripts-2024.tar.gz # 看兩層目錄先摸清結(jié)構(gòu)再動(dòng)手 find . -maxdepth 2 -type f | head -50這段代碼的作用是先把環(huán)境立起來(lái)。mkdir -p保證目錄不存在時(shí)自動(dòng)創(chuàng)建后面所有腳本都能在這個(gè)公共目錄里啟動(dòng)。find加上maxdepth 2是為了先看前兩層避免一次性輸出太多文件反而看不清結(jié)構(gòu)。解壓之后我建議把包里的說(shuō)明文檔先翻一遍重點(diǎn)看作者聲明的依賴(lài)項(xiàng)、Linux發(fā)行版兼容性、有沒(méi)有說(shuō)明默認(rèn)安裝路徑這些信息比腳本本身更能決定你能不能在一小時(shí)內(nèi)跑通。2.2 環(huán)境準(zhǔn)備先確認(rèn)本地有沒(méi)有這些默認(rèn)依賴(lài)279個(gè)腳本不可能都只用原生的bash。凡是涉及網(wǎng)絡(luò)、磁盤(pán)、數(shù)據(jù)庫(kù)、文本處理的腳本多少都會(huì)依賴(lài)外部命令最常見(jiàn)的是curl、grep、awk、sed、gzip、df、mysqldump、jq。跑全套之前我建議先做一次依賴(lài)盤(pán)點(diǎn)缺什么補(bǔ)什么避免腳本跑到一半才報(bào)“command not found”。# 一鍵檢查常用依賴(lài)是否存在 for cmd in bash curl grep awk sed gzip df jq mysql mysqldump bc getopt; do if command -v $cmd /dev/null 21; then echo [OK] $cmd else echo [MISSING] $cmd fi done這段代碼的意義不是挨個(gè)執(zhí)行which而是用command -v做一次快速掃描。command -v返回0表示命令存在非0表示缺失比which更可靠因?yàn)閣hich在某些精簡(jiǎn)系統(tǒng)里本身可能就不存在。輸出里凡是出現(xiàn)[MISSING]的就是你在跑對(duì)應(yīng)腳本之前必須先處理的。比如jq缺失JSON解析類(lèi)的腳本就跑不了mysql缺失數(shù)據(jù)庫(kù)備份腳本就會(huì)在執(zhí)行時(shí)直接退出。2.3 把 bin 目錄加進(jìn) PATH讓腳本可以被直接調(diào)用不把腳本加進(jìn) PATH 的后果是你每次都要bash /完整/路徑/腳本.sh這非常累而且腳本里的人相對(duì)路徑一旦寫(xiě)錯(cuò)就會(huì)翻車(chē)。常見(jiàn)做法是在~/.bashrc里增加環(huán)境變量把腳本的核心目錄固定下來(lái)再把可執(zhí)行腳本所在的 bin 目錄加進(jìn) PATH。cat ~/.bashrc EOF # shell腳本庫(kù)環(huán)境變量 export OPS_HOME$HOME/ops/shell-lib export OPS_CONF$OPS_HOME/conf export OPS_LOG$OPS_HOME/logs export PATH$OPS_HOME/bin:$PATH EOF source ~/.bashrc # 驗(yàn)證是否能直接找到腳本 command -v disk_check || echo 還沒(méi)找到檢查 PATH 配置這里用EOF而不是EOF是有意的帶引號(hào)的 EOF 能防止$HOME、$OPS_HOME在追加時(shí)被展開(kāi)確保變量是寫(xiě)進(jìn)文件里、而不是寫(xiě)成固定的當(dāng)前目錄值。source之后新開(kāi)的終端也會(huì)生效。PATH 加在靠前位置是防止系統(tǒng)里同名命令覆蓋腳本庫(kù)。2.4 跑通第一個(gè)腳本先選一個(gè)副作用最小的腳本驗(yàn)證環(huán)境想驗(yàn)證整個(gè)環(huán)境是否正常最快的辦法是跑一個(gè)只讀類(lèi)腳本比如磁盤(pán)空間檢查或系統(tǒng)信息收集腳本。這種腳本沒(méi)有刪除操作、不寫(xiě)外部文件跑掛了也不影響系統(tǒng)。以磁盤(pán)檢查腳本為例你只需要傳一個(gè)閾值參數(shù)進(jìn)去# 閾值設(shè)成90意思就是超過(guò)90%才告警 bash bin/disk_check.sh 90 echo 退出碼$?跑完你會(huì)發(fā)現(xiàn)腳本輸出可能只有一行也可能有格式化表格更重要的是退出碼。很多腳本都會(huì)約定0為正常、非0為異常。在第一次跑通之后我建議你觀察一下它的輸出格式是純文本、還是帶顏色、還是能輸出 CSV。這一步看起來(lái)不起眼但后面你要接告警或自動(dòng)化平臺(tái)時(shí)輸出格式?jīng)Q定了你要不要加一層解析。3. 279個(gè)腳本按場(chǎng)景怎么選巡檢、日志、備份、網(wǎng)絡(luò)四類(lèi)先看哪幾個(gè)腳本集合一多最容易犯的錯(cuò)是把時(shí)間花在“把所有腳本都讀一遍”上。我的建議是反過(guò)來(lái)先確定你自己手頭最痛的場(chǎng)景再按場(chǎng)景去翻對(duì)應(yīng)腳本。絕大多數(shù)合集里的腳本都能歸到四類(lèi)系統(tǒng)巡檢、日志處理、數(shù)據(jù)庫(kù)備份、網(wǎng)絡(luò)連通性檢查。每一類(lèi)的考察重點(diǎn)不一樣下面分別說(shuō)。3.1 系統(tǒng)巡檢類(lèi)先看指標(biāo)采集范圍再看輸出格式系統(tǒng)巡檢類(lèi)腳本通常是這個(gè)合集里數(shù)量最多的一類(lèi)涵蓋CPU負(fù)載、內(nèi)存占用、磁盤(pán)容量、進(jìn)程數(shù)、登錄失敗次數(shù)等等。挑選時(shí)我只看兩點(diǎn)第一是指標(biāo)采集是否用對(duì)了命令第二是結(jié)果是否結(jié)構(gòu)化。# 一個(gè)典型的巡檢腳本骨架采集磁盤(pán)使用率并輸出 CSV #!/usr/bin/env bash set -Eeuo pipefail echo filesystem,use_percent,mount_point df -h | awk NR1 { gsub(%, , $5); print $1,$5,$6 }這段代碼展示了巡檢腳本的通用套路。set -Eeuo pipefail讓腳本在遇到未定義變量、管道失敗時(shí)立刻退出避免錯(cuò)誤被吞掉。df -h輸出第一行是標(biāo)題NR1跳過(guò)標(biāo)題行g(shù)sub把百分比后面的%去掉最后拼成CSV。你拿到巡檢腳本時(shí)重點(diǎn)看有沒(méi)有類(lèi)似的“可解析輸出”設(shè)計(jì)。如果一個(gè)巡檢腳本只是打印一堆字符串沒(méi)有分隔符那它更適合人看不適合接自動(dòng)化平臺(tái)。3.2 日志處理類(lèi)切割、歸檔、統(tǒng)計(jì)三件事邊界條件完全不一樣日志腳本在279個(gè)集合理通常也占不小比例。按天切割是最常見(jiàn)的需求。挑日志腳本時(shí)要特別留意三件事文件名后綴怎么生成、是否跳過(guò)正在寫(xiě)的內(nèi)容、保留天數(shù)由什么參數(shù)控制。# 日志切割腳本按天歸檔并按保留天數(shù)清理舊日志 #!/usr/bin/env bash set -Eeuo pipefail LOG_DIR${1:-/var/log/myapp} KEEP_DAYS${2:-7} if [ ! -d $LOG_DIR ]; then echo [ERROR] 目錄不存在: $LOG_DIR 2 exit 2 fi # 將 *.log 原地壓縮為 *.log.20240101.gz find $LOG_DIR -maxdepth 1 -type f -name *.log -print0 | while IFS read -r -d f; do gzip -S .$(date %Y%m%d).gz $f done # 找到超過(guò)保留天數(shù)的 .gz 文件并刪除 find $LOG_DIR -maxdepth 1 -type f -name *.gz -mtime $KEEP_DAYS -delete這段代碼把切割和清理分成兩步。參數(shù)化設(shè)計(jì)讓路徑和保留天數(shù)可以在調(diào)用時(shí)傳${1:-默認(rèn)值}的寫(xiě)法保證不傳參也不會(huì)直接報(bào)錯(cuò)。-print0配合read -r -d 是為了處理文件名里有空格的情況這一步在日志目錄里特別重要很多日志文件名都帶空格或特殊字符。gzip -S指定壓縮文件后綴-mtime $KEEP_DAYS表示只看修改時(shí)間超過(guò)N天的文件。你拿到合集里的日志腳本時(shí)先確認(rèn)它用的是-print0還是普通的-exec。如果是普通寫(xiě)法且沒(méi)做過(guò)濾遇到帶空格的文件名大概率會(huì)翻車(chē)。3.3 數(shù)據(jù)庫(kù)備份類(lèi)先看備份用的命令、壓縮方式、恢復(fù)腳本有沒(méi)有配齊數(shù)據(jù)庫(kù)備份腳本是風(fēng)險(xiǎn)最高的一類(lèi)因?yàn)樗倪\(yùn)行結(jié)果直接影響可用性。這類(lèi)腳本我建議你只信“能恢復(fù)的備份”也就是備份完一定要有辦法驗(yàn)證。選型時(shí)先看它用的是mysqldump、pg_dump還是文件系統(tǒng)快照方式再看有沒(méi)有配套的恢復(fù)腳本。# MySQL 備份腳本骨架按庫(kù)導(dǎo)出并壓縮 #!/usr/bin/env bash set -Eeuo pipefail DB_USER${DB_USER:-backup_user} DB_PASS${DB_PASS:-} DB_NAME${1:-} BACKUP_DIR${2:-/var/backups/mysql} if [ -z $DB_NAME ]; then echo 用法: $0 數(shù)據(jù)庫(kù)名 [備份目錄](méi) 2 exit 2 fi STAMP$(date %Y%m%d_%H%M%S) mkdir -p $BACKUP_DIR mysqldump --single-transaction -u$DB_USER -p$DB_PASS $DB_NAME | gzip $BACKUP_DIR/${DB_NAME}_${STAMP}.sql.gz echo 備份完成: $BACKUP_DIR/${DB_NAME}_${STAMP}.sql.gz數(shù)據(jù)庫(kù)腳本最重要的參數(shù)是--single-transaction它保證備份期間不鎖表在線(xiàn)備份時(shí)尤其關(guān)鍵。用戶(hù)名和密碼通過(guò)環(huán)境變量傳入而不是寫(xiě)死在腳本里這是接手任何備份腳本時(shí)最應(yīng)該先改的地方。備份完成后我會(huì)額外跑一次gzip -t來(lái)驗(yàn)證壓縮包完整性再?zèng)Q定要不要保留這個(gè)腳本作為日常任務(wù)。3.4 網(wǎng)絡(luò)與連通性檢查以退出碼和超時(shí)為準(zhǔn)別只看輸出網(wǎng)絡(luò)類(lèi)腳本和其他腳本最大的不同是它的執(zhí)行結(jié)果受到外部環(huán)境干擾丟包、超時(shí)、DNS解析失敗都可能讓輸出變得不可信。挑這類(lèi)腳本時(shí)重點(diǎn)看有沒(méi)有設(shè)置合理超時(shí)以及是否以退出碼作為判斷依據(jù)。# 連通性檢查帶超時(shí)并輸出結(jié)構(gòu)化結(jié)果 #!/usr/bin/env bash set -Eeuo pipefail TARGET${1:-8.8.8.8} COUNT${2:-3} TIMEOUT${3:-2} if ping -c $COUNT -W $TIMEOUT $TARGET /dev/null 21; then echo reachable exit 0 else echo unreachable exit 1 fi這段代碼把輸出和退出碼綁在一起正常時(shí)輸出reachable并返回0失敗時(shí)輸出unreachable并返回1。-W是超時(shí)秒數(shù)-c是發(fā)包數(shù)量。注意ping的參數(shù)在 Linux 和 macOS 上不一樣macOS 用的是-t你如果腳本庫(kù)里混用了這兩個(gè)參數(shù)到了另一臺(tái)機(jī)器上就會(huì)直接報(bào)錯(cuò)。這類(lèi)腳本還有一點(diǎn)要注意就是不要把 ICMP 連通性和服務(wù)可用性混為一談端口通不通是另一層問(wèn)題。4. 挑三個(gè)腳本做生產(chǎn)級(jí)改造參數(shù)化、配置化、退出碼一個(gè)都不能少279個(gè)腳本里真正能“開(kāi)箱即用”的估計(jì)只有一半多另外一半要么是示例、要么是某個(gè)特定環(huán)境的寫(xiě)法。我的經(jīng)驗(yàn)是與其把這279個(gè)都用一遍不如挑三個(gè)最常用的改造到能直接進(jìn)生產(chǎn)。改造的目標(biāo)很簡(jiǎn)單參數(shù)能傳、配置能改、退出碼能信。4.1 日志切割腳本改造把路徑和保留天數(shù)抽成參數(shù)先改造日志切割腳本。原始腳本很可能把路徑寫(xiě)死在文件里比如LOG_DIR/var/log/nginx。這種寫(xiě)死的問(wèn)題是你復(fù)制到新機(jī)器上就必須打開(kāi)文件改很容易改錯(cuò)。改造后應(yīng)該支持兩個(gè)參數(shù)日志目錄和保留天數(shù)。#!/usr/bin/env bash # 按天切割日志保留 N 天 # 用法: log_rotate.sh 日志目錄 [保留天數(shù)] set -Eeuo pipefail LOG_DIR${1:?必須指定日志目錄} KEEP_DAYS${2:-7} if [ ! -d $LOG_DIR ]; then echo [ERROR] 目錄不存在: $LOG_DIR 2 exit 2 fi # 第一步壓縮現(xiàn)有 *.log find $LOG_DIR -maxdepth 1 -type f -name *.log -print0 | while IFS read -r -d f; do gzip -S .$(date %Y%m%d).gz $f done # 第二步清理超過(guò)保留天數(shù)的壓縮包 # 注意-mtime 的數(shù)值是“超過(guò) N 天”保守起見(jiàn)可以加 1 find $LOG_DIR -maxdepth 1 -type f -name *.gz -mtime $((KEEP_DAYS1)) -delete echo [OK] $LOG_DIR 切割完成保留 $KEEP_DAYS 天這次改造有三個(gè)關(guān)鍵變化。第一個(gè)是${1:?必須指定日志目錄}這個(gè)寫(xiě)法會(huì)在參數(shù)為空時(shí)報(bào)錯(cuò)并退出避免后續(xù)所有命令拿空值去執(zhí)行。第二個(gè)是KEEP_DAYS的默認(rèn)值7天調(diào)用者不傳也能跑。第三個(gè)是刪除條件用了$((KEEP_DAYS1))也就是保留N天多一點(diǎn)防止剛切割完的文件因?yàn)闀r(shí)間邊界被誤刪。實(shí)踐中最容易翻車(chē)的就是這個(gè)保留天數(shù)邊界建議按“多留一天”來(lái)改刪文件條件。4.2 磁盤(pán)告警腳本改造閾值參數(shù)化告警通道和檢測(cè)邏輯分離磁盤(pán)告警腳本是另一個(gè)高頻改造對(duì)象。最初的版本往往只負(fù)責(zé)“檢測(cè)加打印”能不能真正告警取決于你把它接到哪里。我習(xí)慣把告警動(dòng)作單獨(dú)拆出去檢測(cè)腳本只負(fù)責(zé)判斷和輸出告警邏輯通過(guò)回調(diào)函數(shù)或環(huán)境變量來(lái)指定。#!/usr/bin/env bash # 磁盤(pán)使用率告警閾值作為參數(shù) # 用法: disk_alert.sh [閾值] [文件系統(tǒng)] set -Eeuo pipefail THRESHOLD${1:-80} FILESYSTEM${2:-/} USAGE$(df -h $FILESYSTEM | awk NR2 {gsub(%,,$5); print $5}) if [ $USAGE -ge $THRESHOLD ]; then echo [ALERT] $FILESYSTEM 使用率 ${USAGE}% 超過(guò)閾值 ${THRESHOLD}% # 告警通道由環(huán)境變量決定不在腳本里寫(xiě)死 # 調(diào)用側(cè)示例: ALERT_CMDcurl -s -X POST http://alert-server/api if [ -n ${ALERT_CMD:-} ]; then $ALERT_CMD $FILESYSTEM $USAGE fi exit 1 fi echo [OK] $FILESYSTEM 使用率 ${USAGE}% exit 0改造的重點(diǎn)是把“告警方式”從腳本里摘出去。你在這臺(tái)機(jī)器上可能想發(fā)HTTP請(qǐng)求到告警平臺(tái)在另一臺(tái)機(jī)器上只想寫(xiě)日志如果腳本寫(xiě)死了告警方式就很難復(fù)用。用ALERT_CMD環(huán)境變量把告警命令交給調(diào)用者定義腳本本身只做檢測(cè)和判斷。這里沒(méi)有給$ALERT_CMD加引號(hào)是刻意讓 shell 按空格分詞把命令和參數(shù)拆開(kāi)這種寫(xiě)法對(duì)安全邊界有要求所以注釋里寫(xiě)清楚了調(diào)用側(cè)負(fù)責(zé)定義可信命令。4.3 批量執(zhí)行器改造處理空行、注釋、引號(hào)防止命令被拆碎批量執(zhí)行器的作用是從一個(gè)主機(jī)列表文件里逐行讀服務(wù)器然后統(tǒng)一執(zhí)行命令。這種腳本看起來(lái)簡(jiǎn)單但最容易出問(wèn)題的是文件讀取邏輯。沒(méi)有經(jīng)驗(yàn)的寫(xiě)法是for i in $(cat list)一旦列表里有空格或空行處理邏輯就會(huì)崩。更穩(wěn)妥的是用while read配合IFS。#!/usr/bin/env bash # 批量執(zhí)行器從文件逐行讀取主機(jī)并執(zhí)行命令 # 用法: batch_exec.sh 主機(jī)列表.txt [命令] set -Eeuo pipefail HOSTS_FILE${1:?必須指定主機(jī)列表文件} CMD${2:-uptime} if [ ! -f $HOSTS_FILE ]; then echo [ERROR] 文件不存在: $HOSTS_FILE 2 exit 2 fi # 逐行讀取跳過(guò)空行與 # 開(kāi)頭的注釋行 while IFS read -r host || [ -n $host ]; do case $host in |\#*) continue ;; esac echo $host ssh -o ConnectTimeout5 -o BatchModeyes $host $CMD done $HOSTS_FILE這段代碼里有三個(gè)關(guān)鍵點(diǎn)。第一IFS禁止行內(nèi)字段分割保證一行內(nèi)容完整進(jìn)入host變量不會(huì)被空格切開(kāi)。第二|| [ -n $host ]處理最后一行沒(méi)有換行符的情況避免最后一個(gè)主機(jī)被漏掉這是一個(gè)非常隱蔽的問(wèn)題。第三用case匹配空行和#開(kāi)頭的注釋行讓主機(jī)列表文件可以直接帶注釋方便維護(hù)。-o BatchModeyes讓 ssh 在無(wú)法交互時(shí)直接失敗而不是掛住配合ConnectTimeout5能避免批量執(zhí)行卡死。5. 生產(chǎn)環(huán)境跑這279個(gè)腳本5類(lèi)避坑與排查記錄把腳本從“能跑”變成“敢在凌晨三點(diǎn)讓它自己跑”要過(guò)的坑比想象中多。下面這幾類(lèi)是我在多個(gè)環(huán)境里反復(fù)踩過(guò)的按出現(xiàn)頻率從高到低排。5.1 現(xiàn)象腳本報(bào)“No such file or directory”但文件明明在這是 Windows 編輯腳本后最常見(jiàn)的翻車(chē)現(xiàn)場(chǎng)。你從 Windows 上傳到 Linux腳本第一行是#!/usr/bin/env bash執(zhí)行時(shí)卻報(bào)No such file or directory或者提示/usr/bin/env bash^M。原因很簡(jiǎn)單文件是 CRLF 換行bash 解釋器把回車(chē)符當(dāng)成了命令或路徑的一部分。解決方法是把所有腳本批量去掉\r# 批量把 CRLF 轉(zhuǎn)成 LF find . -name *.sh -exec sed -i s/\r$// {} \; # 驗(yàn)證是否還有殘留回車(chē) cat -A bin/disk_check.sh | grep -n \^M || echo 沒(méi)有殘留 ^M絕大多數(shù)腳本集合下載后是壓縮包不會(huì)強(qiáng)制轉(zhuǎn)行。如果你在 Windows 上用編輯器改過(guò)腳本改完一定記得轉(zhuǎn)回 LF。sed -i s/\r$//只去掉行尾回車(chē)不影響文件內(nèi)容里的其他字符。cat -A是驗(yàn)證用的重要工具^(guò)M就是回車(chē)符的顯示形態(tài)。5.2 現(xiàn)象中文輸出亂碼腳本里寫(xiě)的中文注釋全變成“錕斤拷”某些腳本里帶中文提示或日志說(shuō)明運(yùn)行環(huán)境語(yǔ)言環(huán)境不一樣就會(huì)出現(xiàn)亂碼。原因不是腳本本身壞了而是終端或機(jī)器的 locale 與腳本編碼不匹配。解決方向有兩個(gè)。一是統(tǒng)一把腳本編碼設(shè)成 UTF-8二是運(yùn)行腳本前導(dǎo)出語(yǔ)言環(huán)境# 在 /etc/profile.d/ 或 ~/.bashrc 里固定語(yǔ)言環(huán)境 export LC_ALLC.UTF-8 export LANGC.UTF-8注意不要把LC_ALL隨便設(shè)成en_US.UTF-8因?yàn)榉?wù)器上不一定裝了對(duì)應(yīng)的 locale 包硬設(shè)反而會(huì)在某些命令里報(bào)錯(cuò)。C.UTF-8幾乎每個(gè)發(fā)行版都有。你接手腳本庫(kù)時(shí)可以先跑file 腳本名看編碼如果是ISO-8859或GBK再考慮要不要轉(zhuǎn)換。5.3 現(xiàn)象腳本依賴(lài)的命令本機(jī)沒(méi)有跑一半就退出279個(gè)腳本里會(huì)有不少依賴(lài)外部命令最典型的是mysql、jq、bc、getopt。內(nèi)網(wǎng)機(jī)器不一定允許隨便裝包。我見(jiàn)過(guò)有人在生產(chǎn)機(jī)器上因?yàn)闆](méi)有jq而臨時(shí)把 JSON 解析腳本改成grep sed這種做法短期可行但不好維護(hù)。更好的做法是先做依賴(lài)檢查和降級(jí)方案# 依賴(lài)命令缺失時(shí)的優(yōu)雅退出 if ! command -v jq /dev/null 21; then echo [WARN] jq 未安裝跳過(guò) JSON 解析功能 2 exit 3 fi這類(lèi)腳本最關(guān)鍵的是“提前退出”而不是“跑到一半崩掉”。退出碼用3這類(lèi)業(yè)務(wù)碼而不是127的 command not found方便上層平臺(tái)區(qū)分原因。如果你確實(shí)要跑一個(gè)必須依賴(lài)某命令的腳本那就老老實(shí)實(shí)裝依賴(lài)不要用 sed 硬解析 JSON那會(huì)讓后續(xù)維護(hù)成本失控。5.4 現(xiàn)象腳本里有 rm 刪除不知道會(huì)刪到哪腳本合集里肯定有一批帶rm -rf或find ... -delete的清理腳本。這類(lèi)腳本風(fēng)險(xiǎn)最高。不要以為作者寫(xiě)對(duì)了就不會(huì)出事路徑拼錯(cuò)一個(gè)字符就可能是災(zāi)難。我的處理習(xí)慣是拿到腳本后先做一次刪除動(dòng)作審計(jì)再?zèng)Q定要不要上生產(chǎn)。# 先列出腳本里所有刪除動(dòng)作只讀審計(jì) grep -nE rm(-rf)?\s|find\s.*-delete bin/*.sh這一步不執(zhí)行刪除只是把風(fēng)險(xiǎn)點(diǎn)列出來(lái)??吹絩m -rf時(shí)先確認(rèn)它的目標(biāo)路徑是否由固定值或參數(shù)控制再看有沒(méi)有前置的目錄存在性判斷。比如rm -rf $LOG_DIR/*和rm -rf $LOG_DIR完全是兩碼事前者刪文件后者連目錄一起刪。腳本里如果出現(xiàn)絕對(duì)路徑寫(xiě)死的刪除并且沒(méi)有參數(shù)保護(hù)我一般會(huì)改成相對(duì)路徑加變量甚至直接停用。5.5 現(xiàn)象定時(shí)任務(wù)里腳本不輸出退出碼為0但什么都沒(méi)干腳本手動(dòng)跑正常放進(jìn) crontab 之后要么不執(zhí)行要么執(zhí)行了但日志找不到。最常見(jiàn)的兩個(gè)原因一個(gè)是 cron 環(huán)境里的 PATH 和你交互終端里的 PATH 不一樣腳本里用的命令找不到另一個(gè)是腳本輸出重定向到某個(gè)不存在的目錄cron 直接丟棄輸出。# 在腳本頂部固定 PATH 和關(guān)鍵變量 export PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin export TZUTC把 PATH 寫(xiě)死在腳本頂部而不是依賴(lài)用戶(hù)環(huán)境是讓腳本能在 cron 里穩(wěn)定運(yùn)行的底線(xiàn)操作。除了 PATH還要檢查腳本里有沒(méi)有用相對(duì)路徑cron 的工作目錄默認(rèn)是用戶(hù)家目錄相對(duì)路徑很容易失效。日志文件盡量用絕對(duì)路徑并確保腳本運(yùn)行時(shí)日志目錄已經(jīng)存在。6. 把279個(gè)腳本變成自己的養(yǎng)成“注釋即文檔、模板即復(fù)用”的小習(xí)慣腳本庫(kù)跑通只是第一步真正讓這279個(gè)腳本產(chǎn)生長(zhǎng)期價(jià)值的方式是把它拆成自己能復(fù)用的模板而不是讓一個(gè)龐大的合集一直占據(jù)磁盤(pán)。我現(xiàn)在的維護(hù)方式很簡(jiǎn)單所有腳本只要經(jīng)過(guò)改造就把用法注釋寫(xiě)成一兩行并保持統(tǒng)一的參數(shù)風(fēng)格。6.1 給每個(gè)腳本加 usage 函數(shù)替代散落的 echo我習(xí)慣在每個(gè)腳本開(kāi)頭加一個(gè)usage()函數(shù)把接受的參數(shù)列出來(lái)再在主邏輯里判斷$#是否足夠。這種做法的收益很直接三個(gè)月后你回來(lái)看腳本不用靠回憶別人接手時(shí)也不用打開(kāi)正文讀一遍。#!/usr/bin/env bash set -Eeuo pipefail usage() { cat EOF 用法: $(basename $0) 日志目錄 [保留天數(shù)] 示例: $(basename $0) /var/log/nginx 14 EOF exit 2 } [ $# -lt 1 ] usage LOG_DIR$1 KEEP_DAYS${2:-7}6.2 從279個(gè)腳本里抽3個(gè)模板而不是背誦所有腳本把這個(gè)合集堅(jiān)持用了三個(gè)月之后我最大的心得是不要試圖記住每個(gè)腳本而是總結(jié)出三個(gè)自己最常用的模板例如“參數(shù)校驗(yàn)加退出碼加輸出規(guī)范”的巡檢類(lèi)模板、“環(huán)境變量加默認(rèn)值加日志切割”的清理類(lèi)模板、“while read加跳過(guò)注釋加超時(shí)控制”的批量操作類(lèi)模板。遇到新需求時(shí)先在模板上改而不是翻合集從頭找。6.3 驗(yàn)證腳本回歸改一行之后跑一次它的反例每次改動(dòng)腳本之后我習(xí)慣跑它最容易出錯(cuò)的反例比如不傳參數(shù)、傳空目錄、把閾值設(shè)成0。驗(yàn)證一遍不是為了說(shuō)服自己它能跑而是確認(rèn)失敗路徑是可預(yù)期的。這個(gè)習(xí)慣救過(guò)我一次日志切割腳本改完保留天數(shù)后當(dāng)天晚上定時(shí)任務(wù)跑完沒(méi)誤刪就是因?yàn)樘崆皽y(cè)了“目錄不存在”和“文件為空”這兩種情況。一套腳本敢用多久不取決于它當(dāng)時(shí)寫(xiě)了多好而取決于你改它的時(shí)候有多穩(wěn)。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产精品视频播放| 亚洲熟女乱色一区二区三区久久久 | 福利天堂| 国产精品色色| 日韩精品字幕| 九九九久| 少妇色综合| av在线免费一区二区| 91精品网站| 久久99草| 伊人操操| 天天影视之亚洲综合网| 四虎在线观看网站| 少妇久久久免费| 日日97| 日本亚洲熟女视频| 三上悠亚在线毛片91| 久久大香蕉手机高清视频| 岛国激情视频软件| 无码操逼视频一下| 欧美日韩制服| 91美| 变态综合色| 青青草原成人| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 精品久久久久综合无码| 亚洲欧美天| 女人被添高潮免费视频| 中文字幕精品专区搜索结果91| 青娱乐91| 狠狠操狠狠操操| 亚洲乱码精品一区二区| 国产午夜视频| 97久久精品亚洲| 黄污污污污| 熟妇熟女亚洲天堂网| 91欧美高清| 欧美黑人性猛交91| 91天天| 欧美亚洲情色| 婷婷去俺也去六月色| 成在线人在线观看视频| 黄色小视频日本txt| 夜夜嗨免费视频| 久久黄色视频一区二区三区| 国产国产亚洲一二三久久| 亚洲在钱| 国产日韩精品suv| 8x福利精品第一福利视频导航| 久久性爱视频免费看| 日日夜夜精品| 欧美综合网1| 婷婷五月天无码 | 精品一久久久| 97久久国产精品女不卡| 亚洲第一免费视频| 久7色| 国产人妻天天干精品| 一区,二区,三区视频| 婷婷色五月激情| 嗯啊啊啊轻点视频 | 色牛牛AV| 国产久久日| 免费国产视频| 久久丁香| av影院十区| 在线观看不卡一区二区三区| 亚洲无码99| 亚洲drav色图| 国产乱人伦AVA麻豆软件.| 嗯嗯啊中文字幕| 黄片www.| 豆1无夜无码| 久久超碰、| 一级乱伦网站| 欧洲中文字幕| 久久久久免费看少妇A片特黄| 免费一级毛片在线视频观看| 午夜久久久| 搡老熟女老女人老熟妇免费视频| 国产精品第二页| 中文字幕久热视频在线| 都市激情人妻一区二区青青操视频| 亚洲久久久久| 自拍二页| 亚洲成人性爱在线观看| 日韩欧美麻豆 | 欧美日韩97在线| 免费观看性欧美一级| 四虎AV无码| 男插女青青影院| 欧美72网页| 日韩欧美aⅴ综合网站发布| 性性欧美| 夜色五月天| 亚洲天堂欧美| 欧美影音在线| 97九色人妻| 成人性爱AV在线免费观看| 欧美白嫩在线放| 岛国黄色大片网站| 亚洲日韩人妻中文字幕一区| 老熟女乱伦片| 一区二区三区成人高清视频| 色哟哟精品1精品2| 韩国三级三级BD在线| 岛国网址国产| 无码久久国产| 午夜精品久久久久久久久久久久久| 男人的天堂2010| 欧美色视频在线| 亚洲无码日韩电影| 精品9999| 白丝1区2区3区| 强奸乱伦动态污图免费| 久久黄片国产一区二区| 又粗又长又大国产不卡| 久久精品区| 国产在线综合网| 偷拍亚洲视频一区二区三区四区| 人人爱人人乐人人操| 亚洲国产中文字幕| 色www精品视频在线观看| 综合熟女| 国产美女高潮叫床视频| 韩国午夜理伦三级好看| 美女极品一区二区三区| 男女激烈网站最新| 伊人精品久久网站| 久久无码成人| 在线a亚洲视频播放在线| K8久久久久| 婷婷人妻激情| 校园春色五月天| 69天堂| 99中文字幕| 美女极品一区二区三区| 国产精品麻豆成人AV艾秋| 福利社区午夜一区二区| 亚洲精品亚洲人成人网| 中文字幕黄色片| 国产亚洲综合欧美一区| 色色色色色色色色色色色色色色综合 | 日日嗷| 欧美日韩妖精91com| 91网站18+| 麻豆熟妇乱妇熟色A片在线看| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 亚洲精品久久久久久| 大逼色网站| 久久精品国产精品一区 | 丰满人妻一区二区三区性色| 色九久| 色爱欲亚洲| 操逼999| 国产乱弄免费在线视频。| 亚洲综合性网址| 国产精品一二三| 欧美日韩资源| 六月婷婷色综合| 岛国AV一区二区电影| 日日嗨AV一区二区夜夜| 99老司机精品视频在线观看| 欧美日韩在线国产在线| 久久久九97| 久久9精品网站| 九九九九国产| 天天日天天插| 毛片电影一区二区三区| 久热伊人99re| 天天干天天干天天干| 亚洲999综合| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 婷婷激情丁香| 粉嫩绯色AV一区二区在线| 日本不卡码黄色| 91美女片在线| 丁香六月激情| 性色aV一区二区三区噜噜| 91快色色色色色| 色偷偷色偷偷欧美日韩| 国产日韩在线播放av| 禁止观看美女黄| 好吊色一区| 97操在线| 成人久久久| 人妻久久久| 欧美色老汉| 国产欧美一区激情交| 男人天堂网手机版婷婷| 柠檬AV导航| 密臀在线视频| 精品久久久av| 无码黑人精品一区二区三区三| 91欧美偷拍| 超碰在线人妻中文字幕| 亚洲涩图欧美| 99热综合在线| 久久国产热视频97电影| 人人操人人摸超碰| 极品后入免费视频| 超碰 欧美| 正宗无毛一线天嫩逼| 九九色图| 777AV电影| 欧美精品欧美精品系列| 校园春色综合| 中文字幕精品久久久久人妻红杏ⅰ| 久久久久久久久久久精| 日韩久久超碰色| 亚洲日韩美女中文字幕乱| 久久久久深夜无码| 大香蕉在线86| 成人夜夜爽| www亚洲免费| 少妇精品久久| 妇女乱色二区| 99久在线精品99re8a| 亚州伊人色综台| 99超碰碰| 97人人干| 国产精品片| 欧美极品色| 久久久久ab| 久久国产精品m码| 亚洲婷婷五月天| 97精品熟女少妇一区| 亚洲一二三四区| 欧美视频一区二区三区| 大香蕉92| 日天天九九天堂666| 精品人妻视频一区二区在线播放| 日韩资源网| 久久大精品乱码视频人妻熟女| 99激情视频| 人妻无码视频一区二区三区久久| 久久人妻97久久久久久久| 久久是精品| 亚洲免费日韩在线一区二区| 男人的天堂.com| 91看黄片| 亚洲无无码αⅴ每日更新| 欧美精品成人一区二区在线观看 | 久久精品老司| 精品国产久久乱码| 日韩性爱啪啪视频| 久久久久亚洲| 福利伊人玖玖国产| 99精品久久| 久久香蕉国产传媒一区剧情天美| 欧美熟爽综合| 日本性一区| 国产成人精品网站| 国产精品分类在线观看| 国产精选三级在线观看| 18一区二区三区| 思思久热在线精品66| 伦理第一页| 午夜呻吟欧美| 大香蕉2017| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 欧美另类天堂| 日韩三级在线观看网站| 日韩无码黄色片| 亚洲激情色片| 208天天久久九九九| 色汉综合| 亚洲欧美在线观看2021| 蜜桃在线观看一区二区三区| 男人天堂免费| 蜜臀一区二区三区在线| 久久XX| 尤物网站91| 精品欧美老熟女一二区| 久久精品国产97欧美精品亚洲 | 色逼综合| 岛国片在线观看视频亚洲| 日本加靬比网站发布页| 999久久久| 中文字幕在线观看丝袜| 91无码人妻精品一区二区三区蜜桃| 日韩综合无码色欲vv| 夜夜爽77777| 欧美性色欧美| 久久综合女优| 久久久亚洲熟妇熟女| 激情综合久久| 国产精品国产精品国产| 午夜激情床戏激情| 超碰精品日韩欧美国产| 人妻丝袜无 码视频专区| 日本熟妇熟色97一本在线观看| 亚洲图片91| 丁香婷婷激情五月天无毒不卡| 日韩欧美成人性爱在线| 久久人妻| 久污| 日本丝袜美腿人妻九九| 国产成人精品亚洲日本| 被操高清无码视频| 五十路熟女,国产欧美精品区一区二区三区| 亚洲操逼视频网站| 婷婷色色五月天福利| 欧美 亚洲 综合 制服 另类| 亚洲熟妇图片| 五月天伊人| 粉嫩av在线一区二区| 曰韩人妻中文字幕在线| 91情色在线| 91亚洲人| 一二视频神马久久传媒| 婷婷色网| 久久綜合很很很| 超碰97精品在线| 人人色人人操在线| av日韩在线观看电影| 久久成人国产精品| 黄片免费日韩| 欧美v亚洲v综合v国产v妖精| 国产精品美女视频诱惑| 国产在线观看一区二区三区| 成人天天看站长推荐| 天天做日日做天天欢。| 艹精品| 丝袜喷水在线| 日韩综合97p| 国产精品在线网站| 97资源站久久| 91综合无码| 韩日无码在线观看| 成人天天爽| 伦理第一页| 国产精品秘 福利姬在线观看| 九九九九九九九九九国产精品 | 国产91丝袜在线播放蜜月| 久久av网| 亚洲天堂无码| 综合久久婷婷| 国产久久一区二区午夜| 成人性爱电影网| av毛片aaaaa免费看| 三级色影综合网| 欧美精品久久96人妻无码| 国产精品乱码久久久久久久| 亚洲射综合网| 日韩免费福利在线观看| 亚洲不卡AV在线| 成人看片网站| 亚洲AV不卡在线观看尤物| 精品视频一区二区| 91人妻最真实刺激绿帽| 五月丁香大香蕉| 99re95| 97国产|免费| www.久久制服糖| 天天日天天色| 久久成人精品| 国产精品亚洲一级av第二区| 97视频在线免费看| 人人操人人肉久久精品| 欧美成人一级免费电影| 欧美狠狠弄| 久久二| caoni国产亚洲av| 欧洲无码一区二区| 东京热天堂网| 99少妇精品视频| 亚洲双插| 国产精品青草综合久久| 精品9区| 日韩性爱视频在线免费观看| 欧洲Au麻豆| 麻豆AV一区二区天美传媒| 久久鲁干| 综合亚州欧美| 97天堂| 97亚洲色图| 色欲日韩欧美在线一区| 97超碰人操| 亚洲天堂人妻熟妇视频| 中文字幕伊人| 免费看A片毛毛片在线播| 超碰97色色| 日本三级一区二区 在线| 亚洲免费97免费| 日韩一性一交一A片俄罗斯| 高清肉丝中文无码| 国模精品一区二区三区苹果色戒 | 国产亚洲精品自在线亚洲情侣 | 国内毛片欧美香蕉精品| 午夜成人福利影视| 中国一区二区亚洲人妻| 在线洲亚线| 久久久A∨| 99久久精品国产系列| 夜夜国产一区| 床上啊啊啊一区二区三区| 97日韩欧美| 91天美传媒在线观看| 亚洲一区中文字幕一区| 秋霞怕怕片| 后入福利视频| 97人人中文网| 成人资源中文字幕在线观看天天| 国产精品麻豆成人av| 日韩精品一区,二区 九九...老司机| 日韩另类| 韩日性爱av| 久久综合97| 亚洲超碰综合网| 97中文天堂| 色噜噜综合网| 日逼国产| WWW黄片COM| 日韩性爱免费观看视频| 国产操逼网站亚洲一级黄色| julia ann久久| 麻豆人妻少妇在线免费观看| 大香蕉伊人一区在线观看| 五月婷婷爱六月丁香色| www色日本| 人人操人人叉人人插人人| 九九视频黄色片| 五十路熟女人妻一区二区在线观看| 成人久久久精品| 天天影视射综合网| 青青伊人久久| 亚洲自拍欧美色综合| 黄呦呦在线| 99色婷婷中文字幕乱色| 青娱乐手机日韩在线视频| 欧美日韩一干二干| 亚洲精品一卡二卡三卡福利视频网站| 欧美中文狠| 久久久禁| 新怡红院| 天天影视亚洲| 交换娇妻呻吟声不停中文字幕| 亚洲人妻中文在线视频| 岛国片国产成人亚洲播放| 日韩国产欧美伦理在线| 日韩性爱小视频在线观看| 五月婷婷久久综合| 欧美日韩国产中文超碰| 亚洲激情色片| 伦理第一页| 3PAV乱伦视频| 18啪啪手机免费性爱| 免费黄色片。| 91久操| 亚洲精品97在线| 国产夫妻一区二区| 色香伊人| 欧成人精品H无码| a级免费在线观看| 免费的黄片有限公司| 婷婷丁香五月天亚洲天堂网| 操少妇很爽av| 久久精品一区二区三区蜜桃臀| 男人的天堂VA| 黄色av网站在线播放| 91 亚洲 欧美 日韩 国产 综合| 天天综合网~69| 91 亚洲情侣偷拍 久久| 久久97| 无遮挡h肉动漫在线观看| 在线不卡视频| 国产成人精品一区| 欧美在线91| 1769一区二区| 国产第11页| 亚洲麻豆av一区二区| 亚洲色 国产 欧美 日韩| 狠狠躁AV| 欧美亚洲首页| 偷窥自拍亚洲色图| 久久久久久久久久久久久久久乱码| 色av中文字| 欧美色乱| 亚州色图第三区| 天操天操夜操夜月月年年操操| 三级AV入口| 绯色AV粉色AV蜜臀AV| 毛片久久| 校园春色综合色| 欧美人与动性人交a| 亚洲日本男人天堂网| 国产精品人妻无码久久久互動交流| 精品国产一区二区三区av在线资源| 熟人人妻少妇精品久久| 亚洲高潮少妇| 日韩中文字幕精品一区在线| 日韩不卡一二三四| 天天做天天爱天天爽| 大学生美女口爆| 白丝少妇一区二区| 精品性爱无码在线播放| 一区二区三| 久草资源在线视频官方总站日韩丝袜美腿| 亚洲国产ⅴ高清在线观看| 日本精品久久久久久久| 狠狠狠狠狠干| 亚洲高清无毛一区二区| 97情超碰色| 淫淫总合网| 女人被男人桶爽视频网站| 乱色老一区二区三区的观看方式| 丁香五月激情综合| 先锋色眉乱伦资源| AV中亚| 91jk色拍| 国产呦精品一区二区三区下载| 操一对老熟妇爽上天视频| 国产一区二区三区不卡手机在线| 国产吞精a级片激情电影| 97亚洲综合影院| 熟女高潮合集-永久久久-成人AV| 99在线精品视频| 亚洲欧美日韩免费电影| 国产精品久久久久久久久久久久久久| 色九九九综合| 91人妻爽爽人人做人人澡| 免费一级黄色录像影片| 亚洲久9| 色网在线| 亚殴在线| 欧美日韩操逼嗦吊| 蜜乳成人AV| 欧美综合色,www| 国产一区二区三区,在线观看观看| 天天干美少妇一区| 全球成人中文在线| 操逼啊啊啊91| 欧美人人曰人人操人人射射| 超碰美国| 久久久555| 人妻素股| 久久宗合亚洲| 天天α片| 国产污视频麻豆传媒一区二区 | 久久大香蕉手机高清| 亚洲成人性爱在线观看| 免费精品中文字幕| 俄罗斯一区二区视频在线观看| 青青久久艹| 亚洲九九视频| 天美av在线| 91精品少妇搡搡搡| 欧美天天在线| 中文字幕无码不卡啪啪| 亚洲色图伊人网| 久久久不卡区一区二区三区久久久| 黄页18禁| 中文字幕视频在线观看一区二区| 亚洲丝袜二区| 精品国产乱码久久久久A| 天天躁日日躁AAAXX| 日韩成人性爱电影在线播放| 午夜影美女日鸡鸡天天视频国产| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 国产AV毛片| 操逼无码一区| 一级久久性爱视频| 探花激情视频| 天天爱天天操| 久操视频免费在线观看| 欧美天天谢综合网| 人妻人妻天天碰| 色呦色呦色精品| 伊人在线大香蕉视频久久| 超碰精品人妻狠狠干| 久久超碰天天| 97视频在线看| 精品国产91av一区二区三区| 一本一道波多野毛片中文在线| 国产精品极品美女视频| 久久久18| 99久久无色码| 制服诱惑亚洲一区二区三区在线观看| 91视频综合在线| 老熟乱一区二区三区四区| 国产精品在线免费| 影音先锋日本乱伦| 五月综合婷婷久久网站| 视频二区美腿丝袜制服人妻欧美 | 东京热综合久久一区二区| 欧美精品三区| 51一区二区三区| 95人妻爽爽人人做人人澡| 国内黄色精品| 性色高清..……| 国产传媒日韩| 国产精品制服丝袜清纯唯美| 亚洲nv男人的天堂网| 在线综合 亚洲 欧美中文字幕| 国产日韩欧美| 欧美亚洲天堂| 色爱三区| 不卡九肏| 亚洲中文sv| 青草草免费网站av| 色婷婷激情| 亚码人妻| 天天干人人看综合| 91狼人| 久久只有精品一区二区三区| 羞答答AV中文字| 午夜国产综合视频在线观看| 大屁股xxxxx| 色999偷自拍拍| 男人的天堂com| 亚洲一区二区三区播放在线| 尻女朋友一夜| 91久热| 一类av片在线看| 欧美亚洲玖玖玖| 男人的天堂日韩| 国产无码高清操逼视频| 大香交伊人网| 日本幼女18+| 一级特级aaaa毛片免费观看| 三上制服丝AV| 天美91| 婷婷丁香六月| 啊啊在线| 国产亚州精品美女久久久免费| 熟女一区二区| 精品人妻一区二区三区日产乱码| 婷婷综合网站| 久肏视频字幕| a级理论午夜日本| 久久久国产精品亚洲精品| 人妻二区| av大香蕉网站| 国产1024在线播放| 免费看美国人人爽,人人操| 日韩欧视频| 狠狠色婷婷777| 欧洲自拍第一页| 久久6热视频免费观看| 亚热日本熟女| 国产精品久久久久久久毛片1| 韩国女主播青草在线| 久久性爱视频99| 精品射1999| 日韩欧无码一区二区三区免费不卡| 九九成人| 69一区二区| 1956日韩精品| 熟女乱3伦999| SS久久| 久久av一级av少妇av高潮| 午夜精品久久久久久久99热影院| 五月丁香六月综合缴清无码 | 夜夜夜夜久久久久| 91国产精品在线看| 国产老太乱伦一区| 97超碰天天爱天天爱| 欧美一二三级精品在线| 91nbbbbbb| 婷婷视频在线免费观看| 久久精品一区一起草| 亚洲超碰在线| 亚洲av青草久久一区二区| 人妻夜夜爽天天爽麻豆三区网站 | 秋霞一级视频在线观看免费| 78精品| 免费看污网站| 免费亚洲黄色视频在线观看| 99re在线视频这里只有精品| 久久综合九九| a片久久久久久久久久久久 | 爽 好舒服 无码刺激久久| www欧美91| 97国伦国色| 最近2019中文字幕国语免费版| 久草色在线观看| 95精品在线| 国产熟女完整版中字| 色天天野狼综合社区| 情侣开房子拍 日韩无码 女的很漂亮| 中国操逼无码| 91精品国| 大香蕉宅男伊人| 欧美 亚洲 偷拍自拍| 中文字幕欧美丝袜07资源| 欧美少妇性乱| 丁香五月影院| 爽极品影院| 600国产精品视频| 人妻人人澡人人爽人人| 色综合色| 久久东京伊人一本到鬼色| 婷婷人妻激情| 无码久| 口爆综合网| 911av网站免费观看| 欧美人妻制服| 男人精品天堂一区| 青青草原人妻| 激情久久久| 日韩免费三级黄片电影| 亚洲人妻精品一区二区| 熟女AV一区| 操穴国产| 五月丁香成人网| 国产专区第一页| 懂色aV一区二区天美传媒| 久久精品女同亚洲女同13| 日日干日日操五月天伦理视频| 久久久97| 人妻中文字幕日韩电影| 中文AV制服乱伦| www.男人的天堂| 日韩电影免费网站麻豆视频| 国产美女激情| 欧美色图片91| 青青草九九九九九| 婷婷爱五月| 黄aaaaaaaaaaaaaaaaaa色网站| 国产操逼视频在线观看| 91少妇| 91人人操| 成人一二三区| 亚洲双插| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 日韩性爱视频在线免费观看 | 欧美最婬乱婬爆婬性视频 | 夜夜操夜夜爽夜夜高潮| 美女尤物福利视频| 男人的天堂啪啪啪啪啪蜜桃不卡| 亚洲欧美日韩夜夜| 亚洲日韩成人性爱视频| 天天干天天操天天干天天操| 人人人人插| 亚洲成人无码影院| 成人八戒网站| 无码视频黄色网战| 中日高清无码操逼视频| 操99| 婷婷五月天综合网| 黄污污污污| 女同在线视频一区| 综合色图,成人综合网| 色欧美天天| 青青草自拍视频在线播放| 久久久999日本大片| 午夜精品99久久久久传媒| 偷拍 精品 另类 四区| 99热这里只有精| 在线天堂999| 国内操逼视频二区| 操少妞在线视频| 国产超碰欧美| 欧美日韩亚洲天堂| 欧美第一页| 伊人黄色片| 国产精品自在线发布| 欧美综合区| 五月天激情综合网| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 2001天天操| 极品粉嫩少妇视频| 精品无码产区一区二| 中国熟妇| 中文字幕第9页萱萱影音先锋| 亚欧毛片基地国产毛片基地| 久久一区二区高清免费| 狠狠色婷婷7777久| 9999伦理视频| 日韩无码服务区| 大香蕉中文| 亚洲 日本 国产 综合| 天天日天天干天天整| 超碰超碰95| 蜜桃久久久久久久久久久久| 久久老熟女| av爱爱爱| 91狼人| 性色中出| 另类欧美综合| 日本高清视频xxxx| a在线观看| 天天日天天舔东京热| 欧美日韩亚洲少妇寂寞影院正在播放| 91少妇| 久久一级无码精品毛片6| 亚洲 综合 欧美| 精品九九九九九九九九九| 草草草视频| 性在久久久久久| 91九久| 久久精品成人| 久久免费99精品久久久久久| 97人人干| 东京热不卡视频| 深夜福利黄片| 久久精品色欧美aⅴ一区二区| 亚洲成人一二三区| 欧美激情在线观看视频| 强奸乱伦AV网站| 麻豆视频test| 欧美亚洲在线| 中文字幕日韩人妻视频一区二区三区| 欧美成人9797| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 日韩在线地址一| 久久久久人妻| 亚洲做性| 日韩av一级黄片| 亚洲情色图片区| 久久精品人妻一区| 伊人久久88国产女| 亚洲综合色图欧美| 亚洲最大AV网| 俞拍自拍| 成人乱人伦一区二区| 日韩97视频!在线| 国产精品一区二区三| 亚洲午夜av| 一区超碰一区| 最近2019中文字幕国语免费版| 1204av韩国| 日韩免费三级黄片电影| 啊啊啊啊啊在线观看网址 | 超碰成人公开| 国产久久日| .精品人妻一区二区三| 极品粉嫩一区二区| 人人看黄色视频| 国产视频一区二区三区久久亚洲天堂| 美女91在线| 99热66| 国产精品农村妇女| 青草视频在线看看看看看看看看看| 欧美在线大香999| 韩国黄色片精品久久久 | 99热综合| aV中亚| 热天堂一区二区| 明星性猛交ⅹxxx乱大交| 成人精品电影| 亚洲婷婷综合网| 99青青草国产视频| 一级做a爰片久久毛片图片| 诱惑人妻欧美一区在线播放| 中文字幕国产| 美女让帅哥通她小鸡鸡| 精品国产久热在线观看| 91n处女在线观看| 亚洲精品男人的天堂| 美女91网站| 亚洲妇色| 91在线视频观看国产| 亚洲高清男人天堂| 五月天丁香网| 综合网欧美| 97综合国产精品高潮久久| 国产精品毛片?v一区二区三区 | 亚欧色图在线激情| 精品一区二区麻豆| 图片区小说区| 九九草| 欧美精品双插| 国产亚洲禁久一区二区| 玖玖久久久| 国产大片精久久久久久| 二男一女成人A片| 性欧美| 射丝袜高跟鞋99| 久久91视频| 亚州欧美另类| caopeng97人妻| 操逼不卡中文字幕| 亚洲熟妇A V黑人| 操一区| 探花激情视频| 亚洲欧美成人网站AAA| 国产第二页| 黑操B| 精品久久久久久中文| 97天天| 污污污8888| 丁香五月激情网| 乱伦1色页| 青青久久艹| 久久久久久久六六| 97天天爽| 丝袜熟女一区二区三区| 热99这里有精品综合久久| 欧美成人国产精品| 北京专精特新企业招聘信息| 日韩乱伦视频| 性爱综合一区二区| 999久久久九九九九| 性交一区二区在线播放| 97操97色| 91chinese在线| 久久久久久久伊人精品| 美女网站91| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 九九久久久久久爱| 亚洲成人综合在线| 大香网站| 午夜福利无毒不卡| 91综合网| 夜夜性| 亚洲中字慕不卡| 9长久久精品| 一区中文字幕二区日韩| 懂色AV一区二区三区| 性爱av在线免费观看| 欧美一区二区三区另类精品| 91P0RNY大屁股人妻| 91丝袜| 欧美激情精品久久久久久| 精品视频久久区| 蜜屁Av| 躁躁日曰躁2020| 18一区二区三区| 嗯啊不要啊在线| 婷婷在线视频| 99熟女| 桃花色涩综合影院| 乱伦AVxx| 色色香蕉| 欧美日韩操逼动图| 中国女人内射6XXXXX| 又大又长又粗又爽又黄| 午夜无遮挡男女啪啪视频| 日韩黄色片子| 免费av在线播放二区| 日韩强奸av| 黄色片A级一区二区三区| 乱伦熟女论坛| 欧美性爱日韩高清| 日韩免费av片高清无码| 丝袜人妻av一区二区| 黄片免费日韩| 一级做a爰片性色毛片久久| 99精品国产户外露出| 成人免费性爱视视| 一起草三级AV电影在线观看| 在线免费观看高清无码视频| 狠狠操使劲操| 欧美综合国产精品久久丁香| 手机在线免费看的av| 天天日天天搞天天干| 狼狼色丁香久久婷婷综合五月| 激情无码日韩| 日韩AV一起草| www.zbzhongsen.com| 成人五月香网在线| 欧美制服网站美腿丝袜| 国产久久视频| 欧洲小说色图视频另类| 久久是精品| 亚洲Av诱惑| 日韩免费a级毛片无码a∨| 思思视频免费看网站| 十八禁的黄污污免费网站| 成人免费不卡在线视频| 红杏大香蕉| 啊啊啊啊啊啊好湿好爽视频| 中文字幕一区二区三四五区日日骚| 欧美性五月| 亚洲有码视频二区| 大屁股人妻女教师撅着屁股| 亚洲天堂人妻熟妇视频| 大香蕉九九| 亚洲不卡av在线| 色综合超碰超| 不卡二三区人妻少妇| 一区AV| 亚洲 欧美日韩 另类| 国产999精品久久久久久| 丝袜喷水在线| 国产精品一二三| J?P?NESEHD熟女熟妇伦| 蜜乳AV一区二区三区四| 亚洲图片 91| 久久一本大香蕉 | 国产亚洲精品一区二区三区| 欧亚乱色熟女一区二区| 天天添天天干电影| 91欧美丨精品丨入口| 91欧美网| 亚洲天堂人妻熟妇视频| 久久黄黄| 欧美在线综合| www国产无码| 日本黄 R色 成 人网站| 美国久久一二三四| 久久久日本电影| 东北丰满熟女国产一区 | 久久久久亚洲Av无码专区老牛影视| 人妻 丝袜美腿 中文字幕| 亚洲 欧美 91| 91国产丝袜美女| 亚洲无线观看久久| 你懂得91| 日影院久久婷婷夜夜网| 91综合在线| 国产高潮AA片免费看| 999综合色| 最新日本中文字幕| 国产按摩一区二区三区| 青青草好吊| 神马久久久久久伦理片| 日韩内射视频| 亚洲欧美不卡线| 99在线精品观看99| 亚州国产成人精品女人久久| 久久亚州精品成人Av无| 久操B网| 夜夜欢天天干| 久久婷婷色| 9 1超碰九色| 国模艳艳啪啪一区| 免费网色网站| 以及麻豆国产入口在线观看免费| 欧美一区91大爱| 九九热三级片| 五月天成人综合| 91精品国产91久久久久久久久久久久| 淫荡熟女乱伦网| 牛牛久久国产精品视频一二三| 日本αv| 亚洲AV乱码专区国产噜噜亚洲| 欧美色院| 91在线|亚| 啊啊啊网站| 黄色污污污污污污网站| 欧美综合另类| 日本天天吊| 最新亚洲黄色免费电影| 无码人妻一区二区一牛影视| 蜜臀99久久| 亚洲中文字幕妇伦久久| 精品福利| 18一区二区三区| 日本人妻丰满熟妇久久久久久| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 日本成人免费一区二区三区| 欧美日日夜夜| 久艾草在线精品视频在线观看| 日本女厕偷拍| 人人看人人爰人人操| 色哟哟1区2区| 全球成人中文在线| 精品久久久一本一道| 五月丁香综合激情| 玖玖久久久| 国产自产91区13区| 秋霞网—男女啪啪亚洲免费体验区 | 热热色国产一二区AV| 中文字幕性感少妇av| 偷偷人人精品女女久久| 曰韩精品九九无码| 强奸乱伦 亚洲一区| 97欧美色资源| 麻豆啪啪啪视频| 人人妻人人澡人人爽人人精品浪潮| 天美传媒av 在线| 亚洲一区操| 中字一区| 91在线色综合| 亚洲97成人在线观看| 天天插夜夜爽| 岛国片在线观看视频亚洲| 久久国产乱子伦精品免费女,网站| 麻豆久久久久久久久丝袜| 九九干| 日日躁夜夜躁狠狠躁超爽| 有码免费观看| 综合操逼| 久久久999| av东京热男人的天堂| 婷婷91| 日韩在线地址一| 欧美最大综合网| 97在线国产精品| 色综合久久88色综合久久天天| 久久精品国产亚洲av水密被窝| 自拍盗摄一区| 91狼人| 操b在线观看| 在线观看啊啊啊啊啊| 激情文学 国产一二三aV| 国产乱伦一二三区| 2018天天日天天日| 天天操天天干美女网址导航| 综合亚洲情色| 久久久久久欧美精品se一二三四| 秋霞免费无码视频日韩A片| 婷婷丁香人妻| 欧美91网站| 嗯啊免费视频| 免费看日产一区二区三区| 中文字幕美女91| 一二三区精品视频| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 国产精品一区二区三区,亚洲综合| 97Ai亚洲| 尤物视频偷拍免费| 大香蕉十区| 午夜免费视频1000| 黄色一级视| 狠狠中文字幕| 欧美亚洲自拍另类人妻| 久久东京热成人| 国产精彩女在线观看视频| 美女的肌被草喷水视频| 天天摸,夜夜摸| 欧美在线观看综合国产| 新久久AV| 亚洲欧洲av影音| 啊啊啊啊啊啊好多水| 四虎精品亚洲| 欧美91久久久久| 区二区亚洲婷| 97欧美精品综合| 欧美久久九九| 天天色粽合合合合合合合| 免费黄色A片| 岛国片国产成人亚洲播放| 国产精品嫩草影院午夜两性| 懂色Av| 欧美色综合| 激情小说亚洲| 97爱亚洲| 国产精品剧情| 超碰97综合| 九色黄站| 超碰欧美97| 中文字幕欧美丝袜07资源| 女优大全 - 91n| 亚洲人久久久久日| 国产精品乱码久久| 91欧美综合| 校园春色 欧美| 久操精品| 色哟哟 日韩精品| 偷拍 欧美 日韩| 老司机午夜精品视频| 日本韩国国产精品一区| 欧美大香蕉久| 高清无码在线播放网站| 欧美性爱第一区| 久久久久国产精品片区无码直播| 久久精品国产96精品亚洲拳交| 爱丝福利| 91 国产丝袜在线播放-百度| 日本在线激情一区二区三区 | 韩国免费播放一级毛片| 1769成人国产精品视频| av片在线观看免费播放| 大屁股国产在线视频| 日本久久999| 97日韩欧美亚洲|