日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(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便于快速瀏覽、檢索與離線學(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)看作者聲明的依賴項(xiàng)、Linux發(fā)行版兼容性、有沒(méi)有說(shuō)明默認(rèn)安裝路徑這些信息比腳本本身更能決定你能不能在一小時(shí)內(nèi)跑通。2.2 環(huán)境準(zhǔn)備先確認(rèn)本地有沒(méi)有這些默認(rèn)依賴279個(gè)腳本不可能都只用原生的bash。凡是涉及網(wǎng)絡(luò)、磁盤(pán)、數(shù)據(jù)庫(kù)、文本處理的腳本多少都會(huì)依賴外部命令最常見(jiàn)的是curl、grep、awk、sed、gzip、df、mysqldump、jq。跑全套之前我建議先做一次依賴盤(pán)點(diǎn)缺什么補(bǔ)什么避免腳本跑到一半才報(bào)“command not found”。# 一鍵檢查常用依賴是否存在 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解析類的腳本就跑不了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è)只讀類腳本比如磁盤(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ò)四類先看哪幾個(gè)腳本集合一多最容易犯的錯(cuò)是把時(shí)間花在“把所有腳本都讀一遍”上。我的建議是反過(guò)來(lái)先確定你自己手頭最痛的場(chǎng)景再按場(chǎng)景去翻對(duì)應(yīng)腳本。絕大多數(shù)合集里的腳本都能歸到四類系統(tǒng)巡檢、日志處理、數(shù)據(jù)庫(kù)備份、網(wǎng)絡(luò)連通性檢查。每一類的考察重點(diǎn)不一樣下面分別說(shuō)。3.1 系統(tǒng)巡檢類先看指標(biāo)采集范圍再看輸出格式系統(tǒng)巡檢類腳本通常是這個(gè)合集里數(shù)量最多的一類涵蓋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)有類似的“可解析輸出”設(shè)計(jì)。如果一個(gè)巡檢腳本只是打印一堆字符串沒(méi)有分隔符那它更適合人看不適合接自動(dòng)化平臺(tái)。3.2 日志處理類切割、歸檔、統(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ù)備份類先看備份用的命令、壓縮方式、恢復(fù)腳本有沒(méi)有配齊數(shù)據(jù)庫(kù)備份腳本是風(fēng)險(xiǎn)最高的一類因?yàn)樗倪\(yùn)行結(jié)果直接影響可用性。這類腳本我建議你只信“能恢復(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它保證備份期間不鎖表在線備份時(shí)尤其關(guān)鍵。用戶名和密碼通過(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ò)類腳本和其他腳本最大的不同是它的執(zhí)行結(jié)果受到外部環(huán)境干擾丟包、超時(shí)、DNS解析失敗都可能讓輸出變得不可信。挑這類腳本時(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ò)。這類腳本還有一點(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類避坑與排查記錄把腳本從“能跑”變成“敢在凌晨三點(diǎn)讓它自己跑”要過(guò)的坑比想象中多。下面這幾類是我在多個(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)象腳本依賴的命令本機(jī)沒(méi)有跑一半就退出279個(gè)腳本里會(huì)有不少依賴外部命令最典型的是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ù)。更好的做法是先做依賴檢查和降級(jí)方案# 依賴命令缺失時(shí)的優(yōu)雅退出 if ! command -v jq /dev/null 21; then echo [WARN] jq 未安裝跳過(guò) JSON 解析功能 2 exit 3 fi這類腳本最關(guān)鍵的是“提前退出”而不是“跑到一半崩掉”。退出碼用3這類業(yè)務(wù)碼而不是127的 command not found方便上層平臺(tái)區(qū)分原因。如果你確實(shí)要跑一個(gè)必須依賴某命令的腳本那就老老實(shí)實(shí)裝依賴不要用 sed 硬解析 JSON那會(huì)讓后續(xù)維護(hù)成本失控。5.4 現(xiàn)象腳本里有 rm 刪除不知道會(huì)刪到哪腳本合集里肯定有一批帶rm -rf或find ... -delete的清理腳本。這類腳本風(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)。看到rm -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ě)死在腳本頂部而不是依賴用戶環(huán)境是讓腳本能在 cron 里穩(wěn)定運(yùn)行的底線操作。除了 PATH還要檢查腳本里有沒(méi)有用相對(duì)路徑cron 的工作目錄默認(rèn)是用戶家目錄相對(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ī)范”的巡檢類模板、“環(huán)境變量加默認(rèn)值加日志切割”的清理類模板、“while read加跳過(guò)注釋加超時(shí)控制”的批量操作類模板。遇到新需求時(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
返回資訊列表
丝袜 中出 制服 人妻 美腿 中文字幕| 91无遮挡| 久久久人妻| 久久亚洲精品成人av| 97视频观看| 国产精品农村妇女| 婷婷天堂站| 97视频在线观看网站| AV麻豆免费一区| 五月天伊人| 日本亚欧爱爱| 国产精品欧美日韩久久| 欧美国产有色电影| 欧美十八禁视频| 嗯嗯啊啊啊好舒服| 国产第12页| 日韩人妻少妇中文字幕| 久9无限国产| 国产成人自拍视频在线| 国产丝袜高跟美女av免费观看| 人人弄人人摸| 久久 久久国内精品亚洲| 伊人久久综合影院| 97chaopengongkai| 男人天堂婷婷五月天校园春色| 97精品全部| 99久久九九| 少妇内射www在线观看视频| 国产又黄又爽| 大香蕉在线86| 欧美十八禁导航成人| 日韩精品熟妇| 大黄片做爱的大的| 99热这里只有精品1| 超碰97人妻免费在线| 欧美在线伊人色| 麻豆久久一区二区三区| 97干色天堂| 男女香蕉一区二区| 九九综合| 69XX一中文字幕人妻91| 久久久久ab| 色婷婷视频| 美女91色黄18| 久久久久夜夜夜夜| 看看小穴| 久久精品久久九九精品| 和协影院中文字幕三区| 一区二区激情国产熟女| 免费啪啪一级视频| 污色区网站| 操香逼| 9丨亚洲一区二区在线| 久久久久久久久久久久久久久性生活视频 | 大屁股xxxxx| 97在线免费看视频| 97视频7| 日韩色| 日本道不卡| 久久综合女优| 色综合中文字幕不卡| 超碰97COm中文| 天天亚洲综合| 丁香五月色情| 成人自拍三级在线观看| av影院十区| 人人澡人人爽人人精品| 欧美三级中文字幕hd| 97视频播放| 大香蕉天天看妹子| 九月丁香| 葡萄牙性视频一二区 | 国产小黄片在线免费观看| 色拍偷亚洲| 大香蕉色十月| 99re热有精品视频国产| 久久这里只| 99爱爱| 国产精品交换一区二区| 欧日a| 亚洲久久久久| 亚洲男人天堂视频| 亚洲AV不卡在线观看尤物| 99综合网| 黄色片大香蕉| 小日子操bb在线看| 一区二区三区视频| yazhououmeizongya| 欧美丝袜激情| 精品人妻一区二区免费蜜桃| 超碰国产在线| 狠狠操狠狠插| 日韩免费三级黄片电影| 久久无码一区二区二三区性色 | 国模少妇一区二区三区| 久久久一区二区三区三州| 欧美成人精品欧美一级乱黄一区二…| 亚州,欧美在线| 亚洲人码13| 久久久中文版| 97频视在线| 日韩乱码Av| 激情专区综合| 亚洲精品成人| 熟女人妻一区二区三区| 97干色| 色综91| 懂色Av一区二区三区| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 天天日日本| 亚洲欧美精品一区天堂久久 | A级毛片在线看免费| 亚洲欧美首页| 国产多人在线观看视频| 欧美一区二区一级岛国大片| 中国AAAAAA黄色片| 亚洲图片婷婷五月天| 99色网| 国产成人五月天丁香花| 亚洲骚逼少妇| 久久久91福利姬| 极品久久久久久久久久久久久久| 天天摸夜夜操视频| 又黄又硬又粗又长国产视频| 国产尤物在线三区| 91丝袜| 亚州一区二区| 2018天天日天天日| 99久久久无码精品国产人| 18禁在线视频| 操逼视频亚洲| 人人色人人操在线| 精品97精品97| 中文字幕欧美日本乱码一线二线| 亚洲天天天| 亚洲男人在线观看天堂| 亚洲色综合| 91精品国产综合久久久蜜臀酒店| 久草网站免费在线观看| 玖玖爱综合网| 97免费视频在线观看视频| 另类图片五月天| 亚洲Av诱惑| 欧美AB在线| 夜草网站| 懂色AV一区二区三区| 国产精品自拍欧美在线| 黄污污污污| 夜夜高潮夜夜爽高清视频一 | 伊人久久在线视频观看| 亚洲第一无码播放立川理惠| 蜜臀久久99精品久久久老,,| 中国熟女网站| 大香蕉一级黄色片久久| 国产九九九九九九九九| 亚洲有薄码区日本系列中文字幕| 日韩有码一区三区| 99日免费视频中文字幕| 蜜臀在线看片| 啊啊啊啊啊啊在线| 香蕉人人操tv| 大香蕉综合| 日韩精品高清资源在线| 伊人久久大香线综合无码| 啊啊啊啊啊啊啊在线| 久久9999 | 性爱AV天堂| 变态另类专区| 亚洲一区二区三区中文字幕| 五月天婷婷综合网| 亚洲系列欧美| 日韩熟女操逼| 丝袜熟女一区二区三区| 国产白领连续中出在线播放| 中文字幕高清精品一区| 91色婷婷综合久久中文字幕二区| 欧美在线视频观看一二三四区高清 | 精品久久久九九九孕妇| 中文字幕第二页| 日本一区不卡| 久久五月婷| 色婷婷久久综合超碰| 玖玖久久久| 亚洲 欧美 手机在线观看| 日韩精品人妻中文字幕有码午| 青青草在线视频播放器| 欧美日韩性爱视屏免费看了| 中文字幕78| 亚洲av噜噜噜噜噜噜| 黑人白女精品一区| 一区二区 电影 亚洲| 国产精品高朝久久久久久久| 中文字幕日韩专区精品系列| 磁力99AV| 激情 欧美 亚洲 小说| 婷婷久草一区二区三区| 0755午夜福利视频| 成人免费不卡在线视频| 欧美亚洲宗合色性图| 高清视频一区| 夜夜高潮夜夜爽高清视频一 | 1024午夜激情男人的天堂| 日韩激情电影中文字幕| 欧洲免费一区二| 丰满熟女一区二区三区在线播放| 99热精品在线在线| 日日摸日日碰夜夜爽视频| 日本欧美国内在线| 91 亚欧| 日本一本道A级黄色毛片试看60分钟| 一区二区国产视频在线观看| 大香蕉视频一二三区| 国产夜夜艹| 美女黄网| 亚洲色欲一区二区三区| 一级做a爰片久久毛片图片| 青青草自拍视频在线播放| 亚洲高清自拍| 中文字幕乱碼在线| 园内精品自拍视频在线播放| 天天干天天日天天射黄色大片| 免费人成毛片乱码| 嗯嗯啊好大| 精品国产人成在线| 9九九国产| 996热| 在线免费试看60秒| 婷婷91| 精品免费成人久久| 操久久久久久| 五月天久久人妻| 久久超碰爱| 国产在线综合福利网站| 清清草影| 免费A V在线| 91网站18禁| 婷婷三区| 中国AV美女| nuu12国产麻豆精品| 色婷婷电影网| 国产男女边吃边摸视频网站| 亚洲情色综合网| 中文字幕jul-617人妻熟女| 日韩成人人妻网站| 欧美色九九九| 最新国内自拍av免费| h色99999| 日韩天美| www.色操逼| 久久久久久久强迫| 91久久国外网| 久久亚洲骚逼综合| 91精品无码人妻系列| 久久久久白虎| 少妇色综合| 天天综合91在线| 国产资源中文字幕在线| 国产午夜福利合集| 日本 免费 一区二区三区 久久香蕉| 日本视频一区二区三区| 九九九九九九视频免费| 蜜桃丰满熟妇av无码区不卡| 少妇人妻精品| 国产不卡免费在线视频| 影视综合无码少妇| 国产精品网址| 亚洲图片偷拍欧美| 亚洲视频一二区| 中文字幕一区二区三区视频播放| 久操凹凸视频| 男女无套 免费网站| 一二三四区电影| 日韩 欧美 校园一区| 亚洲精品aa久久伊人| 成人精品在线免费视频| 久久久精品,3| 天天超级碰碰碰| 久久久久9久久久久| 久久婷色| 国产精品探花视频| 日韩欧美午夜视频在线| 午夜a成v人电影| 天天射天天色成人| 国产热av| 中国熟女网站| 国产超碰在线一区| 粉嫩少妇自慰在线| 2011国产精品| 国产一区二区三区影片| 99在线无码精品秘 入口黑人| 国产 日韩 欧美一区| 国产97色在线| 日本道日本道中文字幕日本道最新日本道在线观看 | 久草资源在线视频官方总站日韩丝袜美腿 | 色综合加勒比四四季| 一二三区在线| 久久久久人妻| 欧美99| 97色婷| 色色色色综合网| 欧美18 在线观看| 无遮挡男女激烈动态图| 精品人妻少妇| 婷婷爽人人婷婷爽视频| 色激情综合网站| 老熟女91| 欧美不卡五十路| 男人的天堂网页| 亚洲少妇视频| 亚洲天堂资源网| 女人香蕉久久毛毛片精品| 91色图片| 久久婷婷苹果| 久久国产乱子伦精品免费女,网站| 大香蕉中文在线| 丰满人妻一区二区三区免费 | 丝袜熟女一区二区三区| 99热在线播放| 97硬碰| 超碰精品在线| 少妇 综合| 综合网色| 色色激情五月天| 精品久久青青草| 毛片视频白嫩| 60秒免费小视频| 久9久9精品| 啊啊啊好疼| 加勒比综合在线| 欧美中字不卡| av网站在线看| 国模不卡| 26uuu性| 中文字幕精品区先锋资源| 噜噜噜无码AV一级一级久久影院| 国产一区二区欧美日本| 天天爱天天韩国日本牛牛牛牛| 嗯嗯嗯好爽| 欧美精品第四五页中文字幕在线观看| 日本精品九九九| 快播久久人人aV| 麻豆天美一区二区| 欧美日韩在线国产在线| 男人的天堂不卡一区二区| 91暧暧| 色999亚洲人成色| 日逼五月天| 后入综合久久| 日本一区视频在线观看| 巨爆乳一区二区爆乳区| 五月天激情网图片| 久久人人妻| 亚洲高清综合网| 日韩图区 偷拍| 国产一| 五月天婷精品激情| 欧美97免费| 亚洲五月婷婷| 青娱乐福利99| 丝袜美腿91| 色制服丝袜夫妻av一区| 黄站在线免费观看| 高清无码网址| 加勒比久久综合网高清| 成人热久久精品| 91黑人无码激情在线| 中日韩久久久| 97超碰精品成| 夜夜高潮夜夜爽高清视频一| 啪一啪免费视频| 校园春色五月天| 韩日欧亚a级| 是还免费视频1727我| 日本一区二区不卡精品| 欧美人人操人人插| 日本一区二区中文字幕久久| 欧中美三级一区二区三区| 亚洲丝袜色图| 色99视频| 亚洲操人| 91精品无码人妻系列| 91欧美经典| 精品网站99999| 97啪啪| 多毛小伙内射老太婆| 狠狠色五月亚洲91| 97超碰人操| 美女大乳久久久久久久女人18| 视频二区美腿丝袜制服人妻欧美| 91久热| 99热色精品| 91久久久久久久久18| 国产亚洲99久久精品| 岛国黄色大片网站| A 天堂在线观看视频| 久草国产在线视频| 日本污ww视频网站| 亚州操操穴网| 黄呦呦在线| 极品美女嘿咻| 亚洲天堂资源网| 97aiaiai| 95自拍视频在线观看| 无色无码| 日韩精品99999| 中文字幕 一区二区 亚洲无码| 国产精品欧美激在线| 亚洲精品 大香蕉| 看看小穴| 熟女久久久| 99久久e免费热视| www.亚洲成人一区| 蜜臀av一区二区三区免费观看| 自拍偷拍亚洲熟女妇人精品| AV免费在线播放一区| 嗯嗯啊在线视频| 这里是精品| 日韩本不卡视频在线观看| 久久精品国产AV一区二区三区| 久久这里只精品免费福利| 深夜激情无码| 色九九九综合| 亚洲欧洲中文日韩女优乱码| 91色久| 亚洲有码第一页| 天天射日日干| av在线观看不卡网站| 乱伦日本色图AⅤ| 人人手机欧洲亚洲国产人妻| 国产精品另类| 亚洲国产成人精品久久久国产成人一区二区三.| 中文自拍欧美影视| 色噜噜人妻丝袜AV资源| 亚洲国产成人精品999| 亚洲av强奸乱伦| 美日韩一卡二卡三卡免费人妻精品| 91 国产丝袜在线放观看| 9久9久| 欧美日韩 强奸乱伦| 欧美大香蕉97| 日本熟女免费視颖| 色超碰综合| 欧美大片91| 丁香六月婷婷久久综合| 东京男人天堂| 免费精品人妻一区二区三| 久久一区无码| 亚洲欧美不卡线| av天天在线观看| 国产在线观看一区二区三区| 久久三| 色天使AV天堂| 午夜男人一级A片7777| 日日骚网站| av婷婷色网| 日韩电影在线观看网址| 91蜜臀人妻中文字幕在线| 欧美99热| 91精品导航| 婷婷五月天影院| 亚洲人体视频在线观看| 日韩中文字幕宗合在线| 日本有码久久| 91美女精品| ,国产乱人伦精品一区二区三区| 激情婷婷丁香| 国产亚卅97| 国产大学生高潮在线播放| 日韩免费在线观看不卡| 色亚州人久干视频在线观看免费版| 亚洲欧美国产成人综合不卡| 四虎在线视频| 久插综合| 18精品一区| 久久久免费一级黄片| 在线中文字幕视频| 91男同| 亚洲丝袜色图| 又大又白奶子| 婷婷五月综合激情| 秋霞操逼片| 91美女小视频| 蜜臀99久| 欧美日韩狠狠爱| 死我十八禁| 欧美日日人人天天| 国产性爱欧美性爱在线| 69视频福利导航| 午夜久久一区二区无码中出| 久久久久免费少妇| 9久超碰| 欧美精品人妻视频| 欧美熟妇视频| 欧美激情综合| 91 亚洲 欧洲| 人妻中文在线| 十八禁啪啦拍视频无遮挡| 中国少妇XXXX做受| 国产熟女完整版中字| 亚洲国产精品99久久久| 天天日夜干| 男人的天堂2018| 综合伊人网12色| 欧美精品久久久久久久丰满| 国产精品美女久久久久久网站| 98久久超碰| 91天天综合日韩欧美| 香蕉国产97| 91丝袜视频在线观看| 51国产午夜精品视频| 少妇极品熟妇人妻无码| 黄色十八禁| 亚洲中文字幕av| 精品人妻一区二区蜜桃视频| 国产精品片| 九九无码视频| 99九九精品| 国产在线不卡导航| 2019亚洲男人天堂| 亚洲女优有码无码高清| 91综合网| 粉嫩不卡一区二区性爱| 女人喷水视频在线观看| 久艾草在线精品视频在线观看| av天堂手机版追回| 白 大 人妻 区 在线| 日本 情色 1区2区3区| 色哟哟-国产专区| 国产女同在线观看视频| 97超碰磁| 91精品久久久久五月天精品| 欧美激情综合| 又大又长又粗又爽又黄| 国产成人久久久精品免费AV| 天天欧美欧美亚洲网| 天天躁日日躁AAA片李宗瑞| 99只有精品| 欧美永久激情一区二区| 欧美一品道| 欧美牲| 亚洲导航深夜福利| 男人天堂婷婷五月天校园春色| 欧美狠狠弄| 色天天野狼综合社区| 96精品久久久久久久久久| 国产精品一区午夜福利| 99re9在线| 精品久久九| 亚洲好色人妻| 五月天我淫我色av| 九月婷婷久久| 一道本东京热加勒比一区二区三区 | 国产视频第2页| 国产一二三在线视频五十路| 精品国产一区二区三区香蕉欧美| 六月婷婷激情| 2019亚洲男人天堂| 综合久久97| 久久6热视频免费观看| 久热伊人99re| 91综合天天看| 国模不卡| 久久大线蕉一区| 天天肏视频| 秋霞一级视频在线观看免费| 日日夜夜噜| 最新亚洲黄色免费电影| 强奸乱伦Av网| 免费网站观看www在线观| 火箭成精品视频884必出精品| 亚洲日韩美女中文字幕乱| av在线浏览| 精品对白久久不卡| 色狠狠综合| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 三级日韩一区二区三区| 极品五月天噜噜| 男人的天堂VA| www.色综合| 亚洲大色鬼| 99久久久久久久久| 夜夜综合| 91久久九九精品国产综合| 中文字幕一区 二 区 三 四 五 区日 日 骚| 尤物视频新赏网鲜网色诱网| 免费一级特黄特色大片在线观看看| 色青青久久影视| 久久国产视频专区一二三| 97se亚洲综合自| 精品人人插人人操| 国产AV人人 夜夜人人澡| 秋霞怕怕片| 暖暖精品二区三区观看| 私人尤物在线精品不卡| 思思热在线cao| 美女黄码视频午夜| 亚洲一区二区中文字幕| 97色欧洲| 五月天婷婷基地| 四虎在线视频| 国产女上位好爽在线| 成人怡红院| 国产suv精品一区二区四| 中文字幕成人乱码熟女精品国50| 99视频精品| 久久超碰网| 91蜜臀在线久久久久| 色欲Av人妻精品一区二| 亚洲天堂另类美腿| 日韩熟女乱伦中出| 欧美黑人168页欧美黑人167| 操碰97| 999精品久久久久久久| 加勒比在线视频| 欧美18 在线观看| 久草男人天堂| 婷婷久久大香蕉| 综合欧美亚洲| 国产天美欧美| 国产树林里野战在线看| 亚洲丝袜少妇在线| 色眯眯射| 噜噜噜在线视频| 青女偷拍网| 蜜桃中文字日产乱幕4区| 无码区蜜乳| 国产av色网| 女色视频社区| 中日亚韩免费视频| 精人妻无码一区二区三区伊人直播| 亚洲制服欧美另类内射| 福利大香蕉| 人人插人人摸人人| 91人人| 小草av不卡亚洲二区| 久久久国产三级黄色片| 日韩福利综合一区| 97 九色| 日韩成人大片在线观看| 少妇综合| 操死我了嗯嗯嗯| 91粉芽高清在线一区二区| 张柏芝国产一区在线观看| 校园春色综合色| 极品色www影院| 91网九色蝌蚪操熟女| 美女骚尻视频| 成人性爱全视频观看| 丰满人妻aA一区二区三区| 九九人妻| 99re国产中文字幕| 免费观看国产小粉嫩喷水精品午| 亚洲欧美洲综合| 男人的天堂日韩| 久久伊人网视频一区二区三区| 欧美三级中文字幕hd| 亚洲中文字幕精品一区| 精品人妻久久久久一区二区三区| 亚洲淫乱骚妇AV| 婷婷五月天av| 色婷婷网| 国产精品熟女九色九色蜜臀| 人人操,人人液| 91欧| 后入式999| WWW4虎| 五月婷婷五月天| 乱伦系列一区二区| 狠狠操夜夜| 蜜乳视频网站| 天天看天天日天天操| 日比av无码| 亚洲综合校园春色| 亚洲人妻熟妇三十三区| 久久人人妻| 伊人AAA| 八人操人人摸人人看| 干我久操| 91网九色蝌蚪操熟女| 国产老太乱伦一区| 9国产超碰| 亚洲色阁| 日韩欧美天堂| 蜜桃视频啊啊啊啊| 欧美第一页| 久久久久久中文字幕中文字幕最新| 激情五月婷婷综合| 超碰人人干| 亚洲天堂 视频你懂的| 可以在线观看AV的网站| 51一区二区三区| 91精品国产日韩欧美综合| 免费啪啪av| 超碰精品97| 青青操日韩| 18精品一二区| 欧美熟妇精品黑人巨大91| 曰韩少妇无码| 97超碰久久色| 综合91网| 一本精品日本在线视频精品| 午夜人人操| 国产家庭乱伦性爱视频| 国产一区二区三区视频在线看| 性爱视频免费网址| 亚洲精品人妻在线| 日本一区二区成人在线| 亚洲精品中文字幕一区在线视频 | 黄片直播三级黄片两女一男| 在线v中文字幕一区二区三区| 无码WWW免费视频网站| 久久免费精品视频免一| 婷婷色五月激情| 色香色香欲天天天影视综合网| 亚洲欧美在线观看2021| 亚洲国产日韩欧美熟妇在线| 91精品啪在线观看国产城中村| 综合五月婷婷亚洲一区| 福利色色| 日韩亚洲美州欧洲综三区一品在线| 欧美激情中文字幕另类小说| 丁香五月婷婷色| 爱射综合| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 国产白领连续中出在线观看| 成人久久精品| 成人情色综合网| 精品久久久久成人码免| 天美传媒麻豆一区二区三区国产精| 日韩人妻无码不卡网站| 久久亚洲中文字幕视频| 久久久久成人亚洲国产| 欧美人妻二区三区| 久久视频,这里只有精品 | 麻豆2区1区天美| 日韩免费人妻色情网站| 中文字幕在线观看网页| 亚洲影视第一页| 久久久97| 黄网色一区二区三区四区精品| 亚州情色j区| 激情视屏国产乱伦强奸| 国语精品av| 亚洲国产ⅴ高清在线观看| 丁香五月成人| 国产精品色| 九久久九九久视频| www.人人cao| 一区二区三区色综合| 日韩免费av片高清无码| 亚洲激情久久| 日日夜夜骑| 五月天婷婷成人网| 97伊人超碰| 综合欧美日韩在线观看| 1024手机看片欧美日韩| 日韩无码精品综合久久| 九九成人精品| 日韩精品免费高清视频在线| 欧洲乱码视频| 无码高清少妇久久| 一本久久精品中文字| 在线色导航| 婷婷美人网| 日韩性爱免费观看视频| 色男人色天堂东京热| 久久人妻| 91天天爱| 大地资源在线观看中文第二页| 欧亚韩国999| 99∨VTV| 久久91| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 97色伦欧美| 高清国产性猛交xxxx乱大交| 校园春色之综合网| 国产亚洲日韩欧| 中出后入| 国产热av| 骚乳在线| 国产成人 综合亚洲 天堂| 欧美综合天天| 一二三卡欧美日韩人妻免费精品| 大茄子熟女AV导航| 亚洲蜜臀懂色| 精产国品一区二三产品| 国产精品国产拍高清AV| 色小视频蜜乳| 九九Av| 丁香五月婷婷啪啪| 艹比视频国产精品| 一区二区影院| 探花精品视频| 91快色色色色色| 午夜啪啪片| av天堂精品久久| 午夜120视频在线观看| 欧美18 在线观看| 国产精品久久久久久高清无码免费看| 在线97视频| 久久区| 99视频这有这里有精品| 精品欧美不卡在线播放| 日本欧美韩国国产在线| 欧美人妻一区| 午夜激情床戏激情| 东京热熟女亚洲视频网站| 亚洲蜜臀懂色| 噜噜噜噜天天狠狠| 亚洲熟妇A V黑人| 国产精品分类在线观看| 成人美女av| 亚洲日韩肥臀视频在线观看| 久久人妇| 中国人高清www色视频免费| 综合夜夜| 色综合久| 天天摸天天碰天天添青青| 色女99一级片在线观看| 任你干在线视频| 超碰97久久| 5月婷婷6月六月丁香| 狂操嫩妻视频一区二区三区| 久久夜夜夜| 久久男人天堂| 少妇被c 黄 免费观看| 熟女字幕| 久久日本熟女精品一区| 欧美日韩1234| 9色在线| 天天色综亚洲91污| 日韩乱伦AⅤ| 国产美女裸体秘 永久无遮挡| 试看60秒 爽| 国产狂喷潮在线精品| 欧美日韩性爱无码| 少妇滛荡视频| 韩国女主播青草福利视频| 伊人久久亚洲中文字幕不卡| 欧美精品另类人妖xxxx| 96AV久久久| 大香蕉宅男伊人| 欧美 日韩第一性色| 国产日韩精品一区二区三区| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 九久久九精品视频| 亚州色图欧美| 四虎AV在线播放| 青青操网| 丁香五月色情| 久久久九九九九| 超碰在线97国产| 日韩大香蕉| 18禁免费视频| 欧美成人都市人妻| 超碰综合97在线| 强奸乱伦Av网| 熟妇女伦乱视频视频| 欧美日韩第一页| 美欧色综合| 天天欧美色| 大香蕉中文| 综合激情婷婷| 激情一区二区| 美女黄色一级A视频| 国产精品欧美在线观看 | 欧州色图区| 亚洲欧美另类激情小说| 精品久热| 探花精品 一区二区| 日本三级R| 日本Suv精品一区二区| www.AV有限公司一区| 国产精品久久久久久久AV大片| 欧美视频激情久久久久久| 欧美写真视频一区| 亚洲欲色9532548967一区| 欧美特大AA级黄片| 国产精品熟女九九九| 肉嘟嘟www视频在线观看高清| 在线免费试看60秒| 熟女视频久久| 中文字幕乱码在线| 丁香五月AV| 精品国产Av无码久久久亚洲| 91伊人大香蕉| 任你艹| 国产成人亚洲精品无| 91精品久久久久久久久久| 国产在线精品偷| 日日操免费视频| 九九九九九九综合| 九九久久久久久爱| 日语五十路和六十路亚洲国产精品| 97亚洲国产| 美女AV一区二区| 男人的天堂2010| 久久精品国产亚洲AV嘿嘿| 午夜操一操| 精品少妇一区二区三区| 97鸡把在线视频| 丁香九月婷婷| 99re欧美| 屁股久久久久久久久| 91人精品妻入口| 97天天综合| 九九热AV| 亚洲色人| 午夜舔阴达高潮视频免费看| 久久二| 久久久夜夜夜| 精品久9| 91久久婷婷| 久久AV色| 国产熟女无套内射| 中精品一区二区三区| 丝袜美腿诱惑亚洲欧美视频在线观看 | 久久九九99| www.黄色在线| 91亚洲网| 摸奶性爱视频网站在线免费播放| 日韩综合色图| 天天澡天天狠天天天做| 日本成人在线不卡一区二区三区 | 精品在线蜜臀| 日日超碰亚洲| 啪啪自拍九九综合| 久久噜噜噜精品国产亚洲综合| 禁十八久久| 久久女婷| 夫妻四区五区六区| 国产吹潮女在线观看| 欧美一级二级三级| 欧美日综合| 中文字幕二区日韩天堂 | 97国产|免费| 超碰午夜| 高清国产无码av| 欧美日韩999| 欧美精品久久| 三级日韩一区二区三区| 开心五月婷婷| 天天干人妻视频| 国产一区二区三区视频在线看| 思思热免费视频观看| 欧美色图私拍91| 九九久精品| 黄色免费一级在线毛片| 黄污污污污| 性生活无遮挡纯毛片在线看| 少妇69中文| 国产13区| 欧美另类丝袜熟女| 成人情色综合网| 玖玖久久久| 久久日本熟女精品一区| 欧美成人国产精品| 青草一区二区| 欧美日韩国产成人高清| 国产成人无码啪| 色婷五月| 久久综合女优| 中文字幕视频二区| 操逼操逼操| 国语国产操逼伊人AV网| 欧美日韩m| 麻豆黄站| 欧美综合网A| 国产A v无码专区| 亚洲色人妻综合| 一区黄二区黄| 91模特在线观看| 欧美福利视频啊啊啊啊| 一个国产在线综合网站| 97超碰中文在线| 性感美女啊啊啊在线| 亚洲图片第一页| 精品一啪| 麻豆天美91| 亚洲不卡一| 大肉棒导航| 麻豆久久精品亚洲精品88| 欧美系列在线一区二区| 和协影院中文字幕三区| 电家庭影院午夜69久久夜色精品国产69乱 | 国产成人久久精品蜜臀| 超碰色男人操熟女| 日韩国产品视频中文字| 天天久久久久久| 综合久久六月久久婷婷| 天天夜夜久久| 99久久久无码国产精品性啊聊| 久热这里| 国产在线激情| 欧美999| 欧美九9 9 9| 少妇九九九九| 天堂69亚洲精品中文字| 超碰人人乐97| 国产一区二区在线看| 中国zzijzzijzzwww精品| 91色爽欧美| 亚洲图片欧美| 丰满的三级少妇欧美久久久| 美女让帅哥通她小鸡鸡| 日韩免费大片一级播放| 北京美女一区二区| 黄片www视频免费| 九九久久九九久久| 九九九九精| 五月丁香综合激情| 国产精品伦理| 日本精品无码三级网站| 色偷综合| 欧美久久伊人| 日本久久久精品电影| 日本性爱欧美性爱| 日本大香蕉| 乱伦一区二区三区‘| 先锋音影AV| 国产极品粉嫩馒头一线天av| 密臀在线免费观看| 亚洲资源站| 蜜臀精品1区2区| 操b在线观看| 992这里有精品| 96精品久久久久久久久久| www.久久爱| 酒色综合网| 啪啪啪大香蕉| 91久久青青草原精品| 一区久久久二区| AV天堂国产| 色婷婷婷五月天激情四射| 一区二区三区亚洲| 亚洲国产蜜臀系列在线观看| 自拍偷拍2025在线观看| 天天影视综合色| 日韩三级视频一区二区三区| 中文久久| 狠狠综合| 98人妻精品一区二区色欲| 欧美色图成人网一区二区| 久久草草亚洲蜜桃臀| 欧美日本天堂| 欧美成人黄网色网站| JuliaAnn丝袜熟女系列| 7月婷婷综合| 少妇人妻好深太紧了vr91| 蜜臀无码一区二区| 久久久久久久久久久久久9999| 在线岛国新天堂8| 欧美成人精品一区二区男人蜜臀| 午夜寂寞欧美| 久久久人妻| 成人热久久精品| 国产日韩欧美三级片| 久久久免费懂色| 五月婷婷爱六月丁香色| 2024黄色视频| 操操操操操操| 91精品伊人久久久大香线蕉91| 欲色综合| 国产熟妇一区二区| 婷婷啪啪| 久久精品久久久久久久久| 热热色国产一二区AV| 乱理日韩中文| www.国产高潮精品| 日本韩高清无砖码22o| 国产1727欧美| 天天日天天舔天天喷天天射| 又粗又长又爽在线观看| 伊人久久亚洲色欲综合网站| 欧美黄色图片| 久久香蕉国产线看观看猫咪av| 国内一级精品| 亚洲精品一区二区免费在线观看| 人妻丝袜无 码视频专区| 国产精品久久久久无码A√| 超碰色老头| 91色堂| 嗯啊不要啊啊在线观看视频| 亚洲蜜桃V妇女| 熟妇xxxxx性春色| 91日产桃蜜| 啊啊啊不要好爽日韩无码一区| 丝袜 亚洲 偷拍| 最新中文字幕在线亚洲| 91肉丝| 99在线精品观看视频中文| 久久久久一本一区二区青青蜜月| 老司机老司机午夜影院| 中文字幕在线免费观看2| 日产成人久久| 少妇同性| 国内精品999| 91性高潮久久久久久久久| 嗯啊视频免费在线观看| 亚洲男人久久综合天堂| 欧美天天综合| 東南亚性呦成人伦理资源在线视频| 国产熟妇一区二区| 久久精品一区二区三区不卡| 成人性爱高清视频免费看| 日本成人在线不卡一区二区三区| 久久久久99精品成人片蜜臀| 九九人妻| 欧美激情久| 女人一区| 野狼激情网| 久久思思热| 九九伊人网| 亚洲激情四射| 五月天色图影视| 91狠狠综合久久久| 一级@啪啪视频| 在线国产福利网址导航| 天天躁日日躁AAAAXXXX国产 | 九九色逼| 以及麻豆国产入口在线观看免费| 超碰人人色| 国产精品亚洲天堂网址| 亚洲AV成人无码一二三久久| 日本一区二区亚洲综合| 日韩av电影成人在线| 有码人妻系列| 五月婷婷六月丁香| 亚洲国产婷婷在线播放| 欧美综合第一页| 国产精品久久久久久9999| 丁香五月天啪啪| 天天懆天天日| 亚洲 日本 不卡| 日韩精品三区四区| 欧美极度丰满熟妇hd| 日本一区二区亚洲综合| 97爱啪| 天天弄欧美| 98一区二区精品| 国产又黄又爽又刺激久久久久久| 久久一二三四不卡 | 中文字幕一区二区在线日韩精品| 99久久精品无码一区二区毛片免费 | 精品久久久久久中文字幕视频免费 | 欧洲小说色图视频另类| 91社区拍啪人妻| 亚洲图片视频小说| 国产亚洲欧美每日在线| 1000午夜黄色| 99热这里| 97欧美性爱| 手机在线A片| 超碰九九| 插入粉嫩少妇视频| 91neishe| 国产精品探花视频| 国产精品内射婷婷一级二| 天天综合欧美黑人| 亚洲少妇色图自慰直播|