亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

臨時(shí)文件自動(dòng)化清理:從腳本到容器環(huán)境的完整方案

臨時(shí)文件自動(dòng)化清理:從腳本到容器環(huán)境的完整方案 先說點(diǎn)實(shí)在話。臨時(shí)文件這東西幾乎每個(gè)用電腦的人都會(huì)碰到但真正把它當(dāng)回事的人不多。我曾經(jīng)在一臺(tái)測試服務(wù)器上見過 /tmp 目錄里堆了接近 30GB 的垃圾里面全是各種安裝包殘留、編譯中間產(chǎn)物和半年前的日志切片。更麻煩的是這臺(tái)機(jī)器磁盤已經(jīng)告警了可沒人敢手動(dòng)刪——因?yàn)檎l都不確定里面有沒有哪個(gè)文件正在被某個(gè)服務(wù)使用。這種場景相信不少運(yùn)維和開發(fā)朋友都遇到過。臨時(shí)文件自動(dòng)化方案說白了就是用一套確定的規(guī)則和工具代替“人工不定期清理”這個(gè)不靠譜的習(xí)慣。它解決的是三個(gè)層面的問題磁盤空間被不知不覺吃光、臨時(shí)文件混亂導(dǎo)致排障困難、以及手動(dòng)刪除時(shí)誤刪正在使用的文件造成事故。這篇文章適合運(yùn)維工程師、開發(fā)者、以及想把自己電腦整理干凈但不想天天操心的朋友。我會(huì)從方案選型、腳本設(shè)計(jì)、定時(shí)任務(wù)配置、誤刪防護(hù)一直講到 CI/CD 和容器環(huán)境里的進(jìn)階玩法全程給可復(fù)現(xiàn)的命令和配置。1. 臨時(shí)文件為什么需要一套自動(dòng)化清理方案1.1 臨時(shí)文件是怎么悄悄長大的臨時(shí)文件不是只有一個(gè) /tmp 目錄那么簡單。按照來源大致能分成幾類操作系統(tǒng)運(yùn)行時(shí)會(huì)產(chǎn)生的套接字文件、PID 文件、軟件安裝包殘骸包管理器緩存比如 apt、pip、npm、yarn 留下的緩存開發(fā)工具的編譯產(chǎn)物像 dist、build、target 目錄以及 node_modules/.cache還有日志切割后的歷史文件。每一類單獨(dú)看都不大但架不住積少成多。我見過一個(gè)很典型的例子一個(gè) Java 項(xiàng)目的編譯構(gòu)建每次會(huì)在 /tmp 里留下幾百 MB 的中間文件。開發(fā)環(huán)境跑了幾周/tmp 就被撐到了 20GB。還有個(gè)前端項(xiàng)目node_modules/.cache 里緩存了幾百 MB 的 webpack 持久化緩存磁盤空間莫名其妙就少了。這種問題最大的迷惑性在于你根本不知道是誰寫的也不知道什么時(shí)候?qū)懙呐挪槠饋硖貏e費(fèi)勁。如果是在 Linux 服務(wù)器上inode 耗盡比磁盤滿更隱蔽。一個(gè)目錄里塞了上百萬個(gè)小文件df -h 看著還有空間但 df -i 已經(jīng) 100% 了這時(shí)候任何新文件都創(chuàng)建不了系統(tǒng)行為變得非常詭異。這類問題一旦發(fā)生手動(dòng)清理難度極大沒有自動(dòng)化方案幾乎只能靠重建文件系統(tǒng)來恢復(fù)。1.2 手動(dòng)清理的三個(gè)硬傷手動(dòng)清理臨時(shí)文件看起來簡單實(shí)際做起來有三個(gè)繞不過去的硬傷。第一個(gè)是頻率問題。人一定會(huì)忘記。磁盤告警才想起來去清理往往已經(jīng)是火燒眉毛的時(shí)刻。我見過很多人平時(shí)不關(guān)心等到發(fā)現(xiàn)磁盤滿了才臨時(shí)抱佛腳地刪文件刪完過兩個(gè)星期又滿了陷入無限循環(huán)。第二個(gè)是判斷問題。哪些臨時(shí)文件可以刪、哪些不能刪需要根據(jù)文件的修改時(shí)間、訪問時(shí)間、當(dāng)前是否被進(jìn)程占用來判斷。手動(dòng)操作時(shí)沒人愿意逐項(xiàng)分析結(jié)果要么一刀切亂刪要么干脆一個(gè)都不敢動(dòng)。第三個(gè)是路徑問題。臨時(shí)文件分布在系統(tǒng)的各個(gè)角落從 /tmp、/var/tmp 到用戶目錄下的 .cache、項(xiàng)目目錄里的構(gòu)建產(chǎn)物甚至容器運(yùn)行時(shí)的 overlay 層。手動(dòng)清理很難覆蓋全而且每次執(zhí)行的操作命令可能都不一樣最終效果完全不可控。1.3 自動(dòng)化方案解決的核心問題自動(dòng)化清理最大的價(jià)值不是“替你點(diǎn)了刪除按鈕”而是把清理這回事從“隨機(jī)事件”變成“確定性行為”。確定性的含義包括定期執(zhí)行、規(guī)則明確、操作可審計(jì)、結(jié)果可追蹤。規(guī)則明確指的是你可以精確指定哪些目錄、按什么條件、刪除多老的文件。比如“刪除 /tmp 下超過 7 天沒修改過的文件”這是一條可執(zhí)行、可驗(yàn)證的規(guī)則。操作可審計(jì)指的是每次執(zhí)行都留下日志刪了多少文件、釋放了多少空間都記錄在案出問題能回溯。結(jié)果可追蹤則意味著你能通過日志和告警知道清理動(dòng)作是否成功、是否有異常。一旦這套東西搭建起來它就能自己運(yùn)轉(zhuǎn)不再依賴人工的臨場判斷。我自己的習(xí)慣是“先盤家底、再定規(guī)則、后上自動(dòng)化”下面幾個(gè)章節(jié)就是圍繞這個(gè)思路展開的。2. 方案選型從“能用”到“好用”2.1 系統(tǒng)自帶方案不用白不用如果只看 Linux 系統(tǒng)本身其實(shí)已經(jīng)內(nèi)置了幾套基礎(chǔ)的臨時(shí)文件管理機(jī)制其中最值得了解的是 systemd-tmpfiles 和 tmpreaper。systemd-tmpfiles 通過配置文件來聲明哪些目錄要清理、按什么規(guī)則清理。配置文件放在 /etc/tmpfiles.d/ 下語法很直白。舉個(gè)例子# /etc/tmpfiles.d/clean-tmp.conf d /tmp 1777 root root 7d D /var/tmp 1777 root root 30d第一行表示 /tmp 目錄保留 7 天超過這個(gè)期限的文件會(huì)被 systemd-tmpfiles --clean 處理。第二行的 D 表示目錄本身和里面的內(nèi)容一起清理保留周期 30 天。這個(gè)方案的好處是零額外依賴、聲明式管理適合規(guī)則不復(fù)雜的場景。tmpreaper 則是傳統(tǒng) tmpwatch 的增強(qiáng)版用起來更靈活。比如這條命令tmpreaper 7d /tmp含義是刪除 /tmp 下 7 天未訪問的文件。tmpreaper 的優(yōu)勢在于它考慮了很多邊界情況比如不會(huì)去動(dòng)正在被進(jìn)程使用的文件、知道怎么處理符號(hào)鏈接、還支持排除規(guī)則。不過在不少現(xiàn)代 Linux 發(fā)行版里systemd 已經(jīng)成為默認(rèn) init 系統(tǒng)systemd-tmpfiles 明顯是更“原汁原味”的選擇。還有一個(gè)很實(shí)用的系統(tǒng)機(jī)制是 logrotate。它管理的是日志文件不是普通臨時(shí)文件但日志和臨時(shí)文件經(jīng)?;煸谝黄稹=o日志配置好按大小或日期切割再配合 rotate 份數(shù)限制能從源頭上避免日志文件無限增長。很多生產(chǎn)事故其實(shí)就是日志把磁盤寫滿了。這兩類系統(tǒng)方案的共同問題是“夠用但不夠細(xì)”。如果只有幾條靜態(tài)規(guī)則那直接用 systemd-tmpfiles 就夠了如果你需要按目錄、按條件、按項(xiàng)目自定義復(fù)雜的清理邏輯就得用腳本。2.2 腳本方案最靈活也最危險(xiǎn)腳本方案的核心就是兩個(gè)工具find 負(fù)責(zé)查找cron 或 systemd timer 負(fù)責(zé)定時(shí)執(zhí)行。它靈活在哪里你可以自由組合路徑、時(shí)間條件、文件類型、大小條件還可以在刪除前做任何你想做的預(yù)處理。但是腳本方案也是最危險(xiǎn)的。原因在于find 命令是一個(gè)純粹的“執(zhí)行者”它不會(huì)理解文件是否重要。一條命令寫錯(cuò)可能把不該刪的全刪了。比如很多人剛接觸時(shí)會(huì)寫 find / -name *.log -exec rm {} ;這行命令會(huì)去系統(tǒng)里找所有 .log 文件然后刪掉包括某些應(yīng)用正在寫入的日志后果不堪設(shè)想。因此腳本方案的準(zhǔn)入門檻是你必須嚴(yán)格遵守“先 dry-run、再真實(shí)執(zhí)行”的原則。dry-run 就是只打印會(huì)刪除哪些文件不真正執(zhí)行刪除。這一步能幫你提前發(fā)現(xiàn)規(guī)則寫錯(cuò)的問題。下面這行命令就是 dry-run 的典型寫法find /tmp -type f -mtime 7 -print先看輸出確認(rèn)列出來的文件全是該清的再把 -print 換成 -delete或者接上 -exec rm 來真正執(zhí)行。2.3 工具鏈方案處理特定生態(tài)的殘留系統(tǒng)方案和腳本方案解決的是通用臨時(shí)文件。但在真實(shí)場景里最有價(jià)值的是針對特定生態(tài)做清理。我舉例說明幾類項(xiàng)目構(gòu)建產(chǎn)物。node 項(xiàng)目里的 node_modules/.cache、dist、buildJava 項(xiàng)目里的 targetPython 項(xiàng)目里的pycache。這些目錄量大、增長快而且重建成本低。清理它們通常不用猶豫??梢詫懸粋€(gè)項(xiàng)目級清理腳本當(dāng)項(xiàng)目不再活躍時(shí)自動(dòng)清掉這些構(gòu)建緩存。包管理器緩存。pip 的 ~/.cache/pipnpm 的 ~/.npmapt 的 /var/cache/apt。這些緩存刪掉之后下次安裝包會(huì)重新下載但在磁盤緊張的時(shí)候它們是最好的“出血點(diǎn)”。我通常在 CI 鏡像構(gòu)建的最后階段清掉這些緩存能顯著減小鏡像體積。Docker 相關(guān)的殘留。docker system prune -f 能清理懸空鏡像和停止的容器/var/lib/docker/overlay2 里堆積的層文件是磁盤大戶。配合日志輪轉(zhuǎn)和鏡像保留策略能避免 Docker 占據(jù)大量磁盤。每種生態(tài)都有自己的一套清理規(guī)則腳本的靈活性在這里體現(xiàn)得淋漓盡致。但要注意工具鏈方案往往涉及特定業(yè)務(wù)邏輯最好能結(jié)合項(xiàng)目實(shí)際情況做保留策略而不是一刀切全刪。2.4 選型建議與對比我直接給一個(gè)決策表格方便你對號(hào)入座方案優(yōu)勢劣勢適用場景systemd-tmpfiles零依賴、聲明式、系統(tǒng)原生規(guī)則表達(dá)能力有限常規(guī) /tmp 和 /var/tmp 清理tmpreaper安全邊界處理較好、主動(dòng)檢查占用部分發(fā)行版需額外安裝傳統(tǒng)服務(wù)器、復(fù)雜排除規(guī)則自寫腳本 cron/timer完全可控、可定制業(yè)務(wù)邏輯風(fēng)險(xiǎn)高依賴編寫者水平多目錄、混合規(guī)則的項(xiàng)目環(huán)境docker system prune專攻容器殘留、集成度高只處理 Docker 生態(tài)CI 跑機(jī)、容器化部署環(huán)境商業(yè)/平臺(tái)級工具集中管理、告警完善引入成本高多機(jī)、多團(tuán)隊(duì)的大規(guī)模治理選型的核心原則是盤子里有多少菜決定你用多大鍋。單機(jī)服務(wù)器上幾條規(guī)則別一上來就上重量級平臺(tái)方案而真正的大規(guī)模集群環(huán)境光靠幾個(gè) cron 腳本也撐不住這時(shí)候才需要集中管理和統(tǒng)一的度量體系。3. 實(shí)操搭一套最小可用的自動(dòng)清理系統(tǒng)這一節(jié)我會(huì)完整走一遍實(shí)際搭建流程從盤家底、寫規(guī)則到掛定時(shí)任務(wù)全部是可復(fù)現(xiàn)的命令和配置。我先說明一下我的環(huán)境假設(shè)一臺(tái) Ubuntu 22.04 服務(wù)器Docker 和 Node 環(huán)境都有目標(biāo)是每天自動(dòng)清理各類臨時(shí)文件。3.1 第一步盤點(diǎn)目錄和設(shè)計(jì)保留策略在動(dòng)任何命令之前先花半小時(shí)做一次“家底盤點(diǎn)”。你需要明確知道這臺(tái)機(jī)器上哪些目錄是真正需要清理的以及每個(gè)目錄的合理保留周期。我推薦的盤點(diǎn)方法是先全盤掃一遍目錄占用定位最大的幾個(gè)目錄du -h --max-depth1 /tmp 2/dev/null | sort -hr | head -20 du -h --max-depth1 /var/tmp 2/dev/null | sort -hr | head -20 du -h --max-depth2 ~/.cache 2/dev/null | sort -hr | head -20然后根據(jù)目錄實(shí)際內(nèi)容和業(yè)務(wù)要求給每個(gè)目錄設(shè)定保留周期。我給一套通用的初始策略你可以直接抄目錄保留周期說明/tmp1~3 天系統(tǒng)臨時(shí)文件生命周期極短/var/tmp7~30 天相對持久但也不應(yīng)長期堆積~/.cache/pip、~/.npm30 天重新下載成本低但沒必要天天刪項(xiàng)目 target、dist、node_modules/.cache7 天構(gòu)建產(chǎn)物可重建日志切割后的舊文件7~14 天由 logrotate 管理更佳Docker 懸空鏡像立即清理docker system prune 處理注意保留周期的設(shè)定不是拍腦袋。太短可能導(dǎo)致正在使用的文件被刪太長則清理沒意義。我的經(jīng)驗(yàn)是“寧保守勿激進(jìn)”初次設(shè)定可以給到雙倍周期運(yùn)行一兩周觀察后再逐步縮短。3.2 第二步寫核心清理腳本腳本是整套系統(tǒng)的核心。我給出一個(gè)我實(shí)際在用的版本做了精簡但核心邏輯完整。它支持日志輸出、支持排除規(guī)則、也支持 dry-run 模式。#!/usr/bin/env bash # 臨時(shí)文件自動(dòng)清理腳本 # 用法: # ./clean-tmp.sh --dry-run # 只打印將刪除的文件不實(shí)際刪除 # ./clean-tmp.sh # 真實(shí)執(zhí)行清理 set -euo pipefail DRY_RUNfalse if [[ ${1:-} --dry-run ]]; then DRY_RUNtrue fi LOG_FILE/var/log/clean-tmp.log # 需要清理的目錄列表空格分隔 CLEAN_DIRS(/tmp /var/tmp /root/.cache/pip /root/.npm) # 各目錄保留天數(shù), 默認(rèn)7天 declare -A KEEP_DAYS KEEP_DAYS[/tmp]3 KEEP_DAYS[/var/tmp]14 # 排除規(guī)則的正則表達(dá)式 EXCLUDE_PATTERN(\.dockerenv|\.X11-unix|\.ICE-unix|systemd-private.*-(systemd.*)/) log() { echo $(date %Y-%m-%d %H:%M:%S) $* $LOG_FILE } clean_dir() { local dir$1 local keep_days${KEEP_DAYS[$dir]:-7} local threshold${keep_days} if [[ ! -d $dir ]]; then log SKIP: $dir not exists return 0 fi log START: $dir keep_days$keep_days if [[ $DRY_RUN true ]]; then # dry-run: 只打印 find $dir -type f -mtime $threshold \ -regextype posix-extended ! -regex $EXCLUDE_PATTERN \ -printf %p %s bytes\n else # 真實(shí)刪除刪除前統(tǒng)計(jì)空間 local before0 local after0 before$(du -sb $dir 2/dev/null | awk {print $1}) find $dir -type f -mtime $threshold \ -regextype posix-extended ! -regex $EXCLUDE_PATTERN \ -delete after$(du -sb $dir 2/dev/null | awk {print $1}) log DONE: $dir released $((before - after)) bytes fi } for d in ${CLEAN_DIRS[]}; do clean_dir $d done log ALL DONE這個(gè)腳本有幾個(gè)關(guān)鍵設(shè)計(jì)我說一下理由。set -euo pipefail 是必須的。set -e 讓腳本在遇到錯(cuò)誤時(shí)立即退出set -u 直接爆出未定義變量pipefail 保證管道中任一環(huán)節(jié)失敗都會(huì)讓整個(gè)命令失敗。這三個(gè)組合起來能讓你第一時(shí)間發(fā)現(xiàn)腳本本身的問題而不是讓它帶病運(yùn)行。find 命令中 -type f 避免了誤刪目錄。如果直接 -delete目錄也會(huì)被遞歸刪除風(fēng)險(xiǎn)極大。保留目錄結(jié)構(gòu)只刪除文件是更穩(wěn)妥的路徑。-delete 相比于 -exec rm {} 更安全因?yàn)?find 內(nèi)置的 -delete 會(huì)在內(nèi)部處理一些邊界情況比如先檢查目錄是否為空避免刪非空目錄時(shí)出錯(cuò)。排除規(guī)則用的是 -regextype posix-extended 和 -regex它的作用是保護(hù)特殊路徑。比如 systemd-private 動(dòng)態(tài)生成的私有目錄里面可能存有運(yùn)行時(shí) socket不能亂刪。腳本里的 du 統(tǒng)計(jì)可以幫你直觀看到每次釋放了多少空間日志對排查很有幫助。3.3 第三步配置定時(shí)任務(wù)腳本寫好后剩下的就是讓它按時(shí)跑起來。Linux 下有兩種主流方式cron 和 systemd timer。cron 是最傳統(tǒng)的方式配置很簡單。編輯 /etc/crontab 或使用 crontab -e加入一行0 2 * * * root /opt/scripts/clean-tmp.sh /var/log/clean-tmp.log 21這表示每天凌晨 2 點(diǎn)執(zhí)行一次清理腳本。為什么選這個(gè)時(shí)間因?yàn)榕R時(shí)文件清理的最佳窗口是業(yè)務(wù)低峰期大多數(shù)服務(wù)在凌晨的負(fù)載最低。如果服務(wù)器上跑著夜間批處理任務(wù)就需要避開那段時(shí)間。systemd timer 是更現(xiàn)代的選擇。我需要先創(chuàng)建一個(gè) service 單元和一個(gè) timer 單元# /etc/systemd/system/clean-tmp.service [Unit] DescriptionClean temporary files Afternetwork.target [Service] Typeoneshot ExecStart/opt/scripts/clean-tmp.sh# /etc/systemd/system/clean-tmp.timer [Unit] DescriptionRun clean-tmp daily at 02:00 [Timer] OnCalendar*-*-* 02:00:00 Persistenttrue [Install] WantedBytimers.target然后執(zhí)行systemctl daemon-reload systemctl enable --now clean-tmp.timersystemd timer 相比 cron 有幾個(gè)優(yōu)勢可以設(shè)置 Persistenttrue即使機(jī)器當(dāng)時(shí)關(guān)機(jī)下次開機(jī)后也會(huì)補(bǔ)跑錯(cuò)過的任務(wù)可以用 systemctl status 查看任務(wù)最近執(zhí)行情況日志集中管理方便排查。我個(gè)人的建議是新環(huán)境優(yōu)先用 systemd timer老環(huán)境沿用 cron 也沒問題。如果你用的是 Windows 服務(wù)器最常用的方式是“任務(wù)計(jì)劃程序”配合 PowerShell 腳本。PowerShell 里頭找臨時(shí)文件同樣簡單$threshold (Get-Date).AddDays(-7) Get-ChildItem -Path C:\Windows\Temp -Recurse -File | Where-Object { $_.LastWriteTime -lt $threshold } | Remove-Item -Force -ErrorAction SilentlyContinue在任務(wù)計(jì)劃程序里設(shè)置每天執(zhí)行一次即可。注意 C:\Windows\Temp 有很多文件被系統(tǒng)占用刪除時(shí)要帶上 -ErrorAction SilentlyContinue 忽略失敗否則任務(wù)會(huì)報(bào)錯(cuò)。3.4 第四步先演練再上崗腳本和定時(shí)任務(wù)都配置好了但我不建議直接讓它以真實(shí)刪除模式運(yùn)行。正確做法是先 dry-run 跑幾天。第一輪演練手動(dòng)執(zhí)行 --dry-run仔細(xì)觀察輸出內(nèi)容。重點(diǎn)看兩個(gè)問題是否有不該刪的文件被列出來了是否有應(yīng)該清理的目錄被排除規(guī)則擋掉了。發(fā)現(xiàn)異常就調(diào)整腳本改完再跑。第二輪演練真實(shí)刪除但選擇業(yè)務(wù)最低峰期手動(dòng)執(zhí)行一次。執(zhí)行前確保已經(jīng)備份哪怕只是備份腳本并且開啟了日志。等腳本連續(xù)跑了一周沒有異常再把它交給 cron 或 systemd timer 去自動(dòng)執(zhí)行。這時(shí)候才算真正上崗。我特別想強(qiáng)調(diào)一點(diǎn)自動(dòng)清理系統(tǒng)的“上線”不是一錘子買賣。它應(yīng)該像監(jiān)控系統(tǒng)一樣需要持續(xù)迭代。磁盤增長趨勢變化了、業(yè)務(wù)新增了臨時(shí)文件目錄、某個(gè)服務(wù)生命周期變短了這些都要反映到清理規(guī)則里。我基本上每季度會(huì)重盤一遍目錄占用同步更新一次腳本。4. 誤刪與安全清理工具的底線工程自動(dòng)化清理的恐怖之處在于它不會(huì)疲倦也不會(huì)猶豫它是按照你的規(guī)則去執(zhí)行每一個(gè)刪除動(dòng)作。如果規(guī)則有誤它會(huì)毫不猶豫地把所有命中的文件殺掉。所以守住安全底線是這套系統(tǒng)的生死線。4.1 正在被使用的臨時(shí)文件會(huì)怎樣這個(gè)現(xiàn)象值得單獨(dú)講。很多人在 Linux 上發(fā)現(xiàn)一個(gè)詭異的事情某個(gè)文件明明被刪除了但磁盤空間并沒有釋放。這是因?yàn)橛幸粋€(gè)進(jìn)程仍然持有該文件的打開句柄。在 Linux 的文件系統(tǒng)語義里文件刪除只是把目錄項(xiàng)移除但如果文件還被進(jìn)程打開著它的 inode 和磁盤塊并不會(huì)立刻釋放要等所有句柄關(guān)閉之后才真正回收。這意味著什么如果服務(wù)在運(yùn)行時(shí)寫了一個(gè)日志文件你把它刪了服務(wù)并不會(huì)立刻崩潰日志會(huì)繼續(xù)寫入這個(gè)已經(jīng)“不存在”的文件里但你再也找不到這個(gè)文件了。直到服務(wù)重啟文件才被真正刪除期間磁盤空間一直占用著。排障的時(shí)候這種情況非常隱蔽。你 df -h 看磁盤空間沒少但目錄里文件又不見了很容易懷疑是被病毒入侵或者有日志清理任務(wù)出了問題。其實(shí)根因可能就是有人在 /tmp 里刪了某個(gè)正在使用的文件。避免這種問題最直接的辦法是用 lsof 檢查文件是否被占用。生產(chǎn)環(huán)境的清理腳本里我建議加一段# 檢查目錄中是否有被進(jìn)程打開的文件 find /var/tmp -type f -mtime 7 -print0 2/dev/null | xargs -0 -r lsof 2/dev/null如果 lsof 輸出有結(jié)果說明有文件正在使用中應(yīng)該調(diào)整保留策略或者將這些文件排除掉。4.2 權(quán)限、符號(hào)鏈接和變量空值三個(gè)經(jīng)典大坑清理腳本里最容易翻車的三個(gè)點(diǎn)權(quán)限、符號(hào)鏈接和變量空值。權(quán)限問題很好理解很多臨時(shí)目錄屬于 root普通用戶清理不了這需要用 root 或 sudo 執(zhí)行清理腳本。但問題在于一旦用 root 執(zhí)行腳本里哪怕有一個(gè)地方邏輯混亂后果會(huì)被無限放大。我的建議是腳本執(zhí)行的用戶權(quán)限要有明確邊界比如用獨(dú)立用戶跑清理任務(wù)不給不必要的 root 權(quán)限。符號(hào)鏈接坑是最隱蔽的。想象一下 /tmp/link 是一個(gè)指向 /etc 的符號(hào)鏈接。如果你執(zhí)行 find /tmp -type d -name link -delete危險(xiǎn)不大但如果你在腳本里寫了 rm -rf /tmp/*在某個(gè)特殊情況下rm 會(huì)對符號(hào)鏈接指向的目標(biāo)進(jìn)行操作尤其是配合 --no-preserve-root 之類參數(shù)時(shí)可能把系統(tǒng)關(guān)鍵目錄刪掉。我見過一次事故有人把 find 的 -exec rm -rf {} ; 誤應(yīng)用于一個(gè)包含符號(hào)鏈接的目錄結(jié)果把鏈接指向的應(yīng)用目錄整個(gè)刪了。所以腳本里涉及目錄刪除時(shí)務(wù)必加上 -type d 的限制并且顯式排除符號(hào)鏈接find ... ! -type l。變量空值是最容易被新手忽視的經(jīng)典坑。在 bash 腳本中如果某個(gè)變量沒有賦值默認(rèn)就是空字符串。假設(shè)你寫了 rm -rf $DIR/而 $DIR 因?yàn)槟撤N原因是空的那么命令行就變成 rm -rf /結(jié)果是災(zāi)難性的。防范手段很簡單腳本開頭用 set -u 讓未定義變量直接報(bào)錯(cuò)或者在刪除前斷言變量非空[[ -n $DIR ]] || exit 1。順便說一個(gè)和空格相關(guān)的坑。文件名里帶空格是合法的但很多腳本在拼接路徑時(shí)沒有加引號(hào)find 的輸出在管道傳給 xargs 時(shí)會(huì)被錯(cuò)誤分隔。處理辦法是使用 -print0 和 xargs -0或者直接用 -delete。我在 3.2 的腳本里使用 -delete就是考慮到這個(gè)。4.3 從“刪”到“移”更穩(wěn)妥的回收站模式對很多場景來說直接物理刪除是不必要的冒險(xiǎn)。更穩(wěn)妥的方式是“移動(dòng)”也就是先設(shè)置一個(gè)回收桶目錄把該清理的文件移動(dòng)進(jìn)去觀察一段時(shí)間沒有異常再真正刪除。這在生產(chǎn)環(huán)境里非常實(shí)用。比如我可以把臨時(shí)文件先移到 /var/tmp/trash保留 14 天后再自動(dòng)徹底刪除。這樣即使有誤判你還有回旋余地可以手工恢復(fù)到原位置。實(shí)現(xiàn)起來也不復(fù)雜在之前的清理腳本基礎(chǔ)上把 -delete 替換成 -exec mv {} /var/tmp/trash/ 即可。我實(shí)際用下來這個(gè)模式既滿足了清理需求又大幅降低了誤刪造成的不可逆風(fēng)險(xiǎn)。唯一要注意的是回收桶目錄自身的清理別讓它變成另一個(gè)堆積點(diǎn)。給回收桶設(shè)置一個(gè)更長的保留周期比如 30 天然后定期清一遍。4.4 日志、告警與問題速查自動(dòng)化清理必須留痕。日志是事后排查的唯一依據(jù)。我在腳本里已經(jīng)把每次清理的路徑和釋放空間寫入 /var/log/clean-tmp.log。如果你有集中日志平臺(tái)建議把這份日志同步上去如果沒有至少確保日志會(huì)按天切割避免單個(gè)文件無限增大。告警也很重要。單純把任務(wù)掛到 cron 里有效期是“靜默失敗”如果腳本出錯(cuò)了可能只會(huì)默默寫個(gè)日志就完事。我的做法是在腳本末尾加上簡單的健康檢查如果本次釋放空間為 0或者腳本執(zhí)行異常就通過 webhook 發(fā)送告警到值班群。這不需要復(fù)雜的監(jiān)控平臺(tái)curl 一條 webhook 就能搞定。梳理一下常見問題方便你快速定位癥狀可能原因排查方法磁盤空間沒減小文件被進(jìn)程占用未釋放lsof 檢查句柄、重啟服務(wù)后觀察日志顯示刪除了但目錄還在find 匹配的是文件目錄未被刪除檢查排除規(guī)則、目錄層級某些目錄從未被清理名稱包含空格/特殊字符路徑拼接失敗用 -print0 驗(yàn)證開啟 set -u清理任務(wù)不執(zhí)行cron 環(huán)境變量或 systemd timer 狀態(tài)異常systemctl status clean-tmp.timer誤刪了業(yè)務(wù)文件排除規(guī)則不完整、保留周期過短立即停止任務(wù)檢查回收桶恢復(fù)這些坑我基本上都踩過一遍。最有價(jià)值的教訓(xùn)是永遠(yuǎn)先 dry-run永遠(yuǎn)先移動(dòng)后刪除永遠(yuǎn)要留日志。記住這三條自動(dòng)清理就不會(huì)成為災(zāi)難制造機(jī)。5. 進(jìn)階多機(jī)、CI 與容器環(huán)境里的臨時(shí)文件治理5.1 給 CI 跑機(jī)做磁盤減負(fù)CI 系統(tǒng)是臨時(shí)文件堆積的重災(zāi)區(qū)。尤其是自建 GitLab Runner 或 Jenkins 節(jié)點(diǎn)每跑一次構(gòu)建都會(huì)在 workspace 和 /tmp 里留下大量中間產(chǎn)物。如果構(gòu)建頻率高磁盤空間兩三天就能告警。我處理過一臺(tái) GitHub Actions 自建 runner每天跑幾十次構(gòu)建每次構(gòu)建產(chǎn)生的臨時(shí)文件從幾十 MB 到數(shù) GB 不等。最初磁盤 100GB半個(gè)月就滿了。后來加了雙重機(jī)制解決第一重是定時(shí)清理用上面說的腳本每天早上 4 點(diǎn)清一次第二重是構(gòu)建結(jié)束鉤子在每一個(gè) job 收尾時(shí)主動(dòng)清理該構(gòu)建產(chǎn)生的臨時(shí)目錄。構(gòu)建結(jié)束鉤子其實(shí)就是 CI 配置文件里的一段代碼比如 GitHub Actions 的 post 步驟- name: Cleanup workspace if: always() run: | docker system prune -f sudo rm -rf /tmp/* /var/tmp/* || true sudo rm -rf /home/runner/work/*/node_modules /home/runner/work/*/*/dist || true注意這里用的是 if: always()保證即使構(gòu)建失敗清理也會(huì)執(zhí)行。CI 跑機(jī)的治理思路是定時(shí)清理兜底構(gòu)建鉤子主動(dòng)清理雙保險(xiǎn)。另外 CI 鏡像構(gòu)建階段清掉包管理器緩存能顯著減小鏡像體積、縮短推送時(shí)間。5.2 多機(jī)統(tǒng)一治理從“單機(jī)腳本”到“批量執(zhí)行”當(dāng)服務(wù)器數(shù)量多到一定程度逐臺(tái)配置 cron 是不可維護(hù)的。這時(shí)候需要把清理規(guī)則集中管理。我常用的方案有兩種。一種是用 Ansible 之類的配置管理工具。把清理腳本和 timer 單元作為基礎(chǔ)設(shè)施代碼推送到所有目標(biāo)機(jī)器。好處是配置變更可以快速批量生效而且可以統(tǒng)一版本管理。另一種是搭建一個(gè)簡單的中心化日志和告警管道每臺(tái)機(jī)器跑完清理后把結(jié)果匯總到同一處比如收集日志到 Elasticsearch 或用簡單的 Webhook 上報(bào)。批量執(zhí)行時(shí)有一個(gè)重要細(xì)節(jié)不要在同一時(shí)間讓所有機(jī)器同時(shí)清理否則可能會(huì)同時(shí)觸發(fā)集中監(jiān)控平臺(tái)的告警風(fēng)暴也可能造成集中的 I/O 沖擊。給每臺(tái)機(jī)器的清理時(shí)間加上隨機(jī)偏移量比如 2 點(diǎn)到 3 點(diǎn)之間隨機(jī)執(zhí)行是一個(gè)成熟的做法。在 Kubernetes 集群里情況稍有不同。節(jié)點(diǎn)的臨時(shí)目錄和容器的 emptyDir 卷由 kubelet 管理kubelet 會(huì)根據(jù) eviction 閾值自動(dòng)驅(qū)逐容器釋放臨時(shí)存儲(chǔ)。但這是“兜底式”的治理主要目的是避免整個(gè)節(jié)點(diǎn)磁盤寫滿。業(yè)務(wù)層面仍然需要自己管理鏡像殘留和構(gòu)建緩存。docker system prune 在容器節(jié)點(diǎn)上仍然很有用配合定期執(zhí)行能顯著減少磁盤占用。5.3 容器場景的特殊考量容器里的 /tmp 和宿主機(jī)上的 /tmp 有本質(zhì)不同。容器內(nèi)每個(gè)文件系統(tǒng)層都是臨時(shí)的容器刪除后層也隨之消失。但也因此產(chǎn)生了一個(gè)問題如果你在容器里堆積了大量臨時(shí)文件而容器長期不重建這些文件會(huì)一直占著內(nèi)存或磁盤。兩個(gè)實(shí)踐建議第一容器內(nèi)盡量避免使用 /tmp 做持久化存儲(chǔ)應(yīng)該使用掛載卷或者 emptyDir第二對跑長時(shí)間任務(wù)的有狀態(tài)容器定期重建是比清理內(nèi)部臨時(shí)文件更徹底的辦法。docker system prune 這個(gè)命令我在前面提到了展開說幾個(gè)參數(shù)docker system prune -f --volumes --filter until72h-f 表示不交互確認(rèn)--volumes 表示同時(shí)清理未使用的卷--filter until72h 只清理 72 小時(shí)前創(chuàng)建的懸空資源。這個(gè)命令特別適合 CI 跑機(jī)清理效果立竿見影。但注意默認(rèn)情況下 docker system prune 不會(huì)清理還在使用的鏡像和容器這一點(diǎn)安全性還可以不過加上 --volumes 之后要確認(rèn)沒有重要的持久卷被誤傷。還有一類常見容器殘留是構(gòu)建緩存。BuildKit 的緩存目錄可能非常龐大。對應(yīng)清理命令是 docker builder prune -f建議在 CI 構(gòu)建完成后定期執(zhí)行??偨Y(jié)一下容器的清理哲學(xué)優(yōu)先重建其次治理鏡像最后才是容器內(nèi)部清理。5.4 建立長效機(jī)制從“清理”到“預(yù)防”臨時(shí)文件治理的終極目標(biāo)不是“清得多”而是“產(chǎn)生得少”。當(dāng)自動(dòng)化方案穩(wěn)定運(yùn)行之后我會(huì)建議你花更多時(shí)間從源頭減少臨時(shí)文件的產(chǎn)生。具體可以做的事情很多規(guī)范日志切割配置 logrotate 的 maxsize 和 rotate統(tǒng)一包管理器緩存目錄并設(shè)置定期清理在 CI 流水線里對構(gòu)建產(chǎn)物做歸檔并自動(dòng)刪除舊版本使用 tmpfs 掛載 /tmp讓系統(tǒng)重啟時(shí)臨時(shí)空間自動(dòng)清空對需要的臨時(shí)數(shù)據(jù)直接寫入內(nèi)存文件系統(tǒng)而不是寫盤再刪。以 tmpfs 為例把 /tmp 掛載到內(nèi)存中讀寫速度快是一個(gè)好處更關(guān)鍵的是重啟后內(nèi)容自動(dòng)清空完全不需要人為干預(yù)。但有個(gè)前提內(nèi)存要夠大否則 /tmp 占滿內(nèi)存反而影響系統(tǒng)穩(wěn)定性。在內(nèi)存資源充足的服務(wù)器上這是一個(gè)很優(yōu)雅的方案。預(yù)防思維的本質(zhì)是把“清理臨時(shí)文件”這件苦差事從“事后補(bǔ)救”變成“設(shè)計(jì)時(shí)考慮”。你可以在系統(tǒng)設(shè)計(jì)階段就把臨時(shí)文件的存儲(chǔ)路徑、保留時(shí)長、清理責(zé)任劃分清楚。能做到這一步之后維護(hù)的負(fù)擔(dān)會(huì)直線下降?;氐轿易约旱捏w會(huì)臨時(shí)文件自動(dòng)化治理最被低估的價(jià)值其實(shí)不是省了多少 GB 磁盤而是讓系統(tǒng)行為變得可預(yù)期。定時(shí)任務(wù)每天都在跑日志每天都在記磁盤占用曲線慢慢變得平緩。那種“不知道哪一天磁盤會(huì)滿”的焦慮感消失之后你才有余力去做更有價(jià)值的事。這套方案本身不復(fù)雜但它需要你一點(diǎn)點(diǎn)打磨從單機(jī)腳本到多機(jī)批量從被動(dòng)清理到主動(dòng)預(yù)防每一步都是在為系統(tǒng)的長期穩(wěn)定夯實(shí)基礎(chǔ)。最后再分享一條個(gè)人經(jīng)驗(yàn)每次清理腳本變更后至少保留一周的 dry-run 日志不要急著刪除。這些日志是你在排查“是不是清理腳本誤刪了文件”時(shí)最有力的證據(jù)。臨時(shí)文件清理這種操作寧可慢一點(diǎn)、啰嗦一點(diǎn)也千萬別拿生產(chǎn)環(huán)境做賭注。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 无码少妇精品一区二区60岁老人| 免费的av网| 亚洲在线A| 国产精品一区二区三区,亚洲综合| 黄色污污污污污污网站| 蜜桃av色偷偷av老熟女| 69人妻精品一区二区绯色| 91中出在线| 国产成人精品日本亚洲语言 | 中文字幕在线免费观看视频| 五月天精品| 在线v中文字幕一区二区三区| 91久久18禁| 91久久青青草原精品| 婷婷色导航| 大香蕉92| 五月婷丁香| 午夜精品久久久久久久第一页按摩| 日本视频在线观看污污污| 青青草精品| 国模私拍一区二区三区神乳| 欧美色交| 超碰av人人人| 思思热在线视频免费| 久久嫩草国产成人一区| 欧美黄色片在线播放| 性性久久| 精品黑人一区二区| 校园春色 亚洲| 久久国色天香香蕉| 国产又黄又爽又刺激久久久久久| 日韩不卡网操逼中文字幕日韩| 国产一区二区精品久久99| 久草热制服丝袜在线观看| 影音先锋视频在线| 欧美性性性| 人妻密肉在线观看| 人人操人人叉人人插人人| 伊人亚洲综合| 97电影院超碰| 久久偷偷色综合蜜桃| 午夜福利免费福利视频| 人妻激情视频| 欧美 亚洲 另类 综合| 色yeye成人免费视频| 亚洲欧美校园| 国精品一区二区三| 日本精品第一视频在'| 久久国产精品m码| av在线人气| 国产精品久久久无码AV网站| 久9九综合在线| 97色在线观看| 国产男人又猛又粗又爽| 亚洲色91| 另类老少妇| 激情九月婷婷| 立川理惠无码一区二区| 人人人人插| 亚洲 欧美 第一页| 日本最新免费韩国1区2区视频播放| 乱伦av.com| 男女国产精品| 99超碰网| 日日日大屁股骚女人精品| 一起草AV| 色久桃花影院在线观看| 密臀在线一区尤物| 九热超碰| 亚州Av天美传媒| 亚洲 欧美 中文 日韩超碰| 99精品久久久久久久婷婷| 97精品网| 色墦五月丁香| 夂久色| 日韩人妻中文视频| 人摸人人操人| 亚洲成人日韩小说| 国产黄色小视频网站| 97伦综合| 校园春色五月天| 亚洲高清在线se| 国内精品不卡无毒99999| 亚洲欧美一区二区三区一猛片| 国产精品乱码久久| 麻豆91熟妇人妻中文字幕茄子 | 色综合九九| 思思热在线cao| 91网站18禁| 欧美第五页| 欧美在线视频播放| 尤物视频网 刘玥| 久久久久密臀一区二区| 久久的网站啊啊啊啊啊| 麻豆2区1区天美| 丁香五月久久| 操逼逼无码| 无色无码| JIZZJIZZ国产精品喷水| 综合五月婷婷亚洲一区| 黄色电影在线播放综合网站| 亚洲人体视频在线观看| 91狠狠综合| 热99re69精品8在线播放| 欧美丰满少妇交换91欧美精品| 黑人精品久久97| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV| 五月久久HDAV| 精品v1区| 青青草在线视频欧美| 任我爽视频在线观看| 日本一区二区三区欧美日韩中文字幕| 婷婷综合五月天| 亚洲综合九九| 啊…啊…操我用力操我 | 特级特黄一级毛片免费| 精品亚洲国产成人精品| 免费观看的av| 久久色激情一区二区三区| 人人妻人人操人人乐| 久妇网| 乱理日韩中文| 99RE在线视频精品,这里只有精品| 91暧暧| 在线一区| 男人的天堂三级| 青青草这里只有精品| 亚洲国产精品无石码久久| 色欲久久99国产精品久久久久久| 上特色A在线| 欧洲特黄毛片免费看欧洲毛片| 亚洲天天操| 久久久性| 91三级理论片播放器| 欧美性生活综合| 中文字幕91综合| 中文字幕88av在线| 狠狠操狠狠燥| 操人妻视频| 色色色日本| 男人a天堂手机在线版| 国产一级αv免费看片| 五月丁香婷婷色| 99青草| 97欧美日韩中文| 色噜噜人妻av中文字幕| 久久久久久久免费A片国产成a人亚洲精∨品无码| 在线视频亚洲无码| 亚洲黄色a级片| 99色在线| 色阁阁AV综合网| 97久久超碰日韩精品| 日本操逼无码| 婷婷伊人綜合中文字幕| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 欧美有码亚洲中文字幕一区二区三区四区 | 中国东北熟女老太婆内谢| 99热99色| 麻豆 亚洲 97| 搡老女人911熟妇老熟女| 操逼逼中文字幕| 男人的天堂2010| 久久久九九九九| 91第一页| 三级三级三级a级全黄三| 久久久无码国精品无码三区三区| 亚洲欧洲日韩中文字幕一区| 久久久久久69国产一区二区| 麻豆国产尤物AV| 校园春色宗合网| 国产中出内射一区二区| 丝袜美腿诱惑亚洲欧美视频在线观看| 91处女在线视频| 免费在线看黄片av| 91丨九色丨43老版熟女| 啊啊啊啊啊啊啊在线| 亚洲国产美女久久久久| 九九综合| 亚洲 欧美 第一页| 18一区二区三区| 怡春院久久| 精品一区二区成人| 亚熟hd视频在线| 91东北熟女| www狠狠| 99re在线视频这里只有精品| 密乳AV免费观看| 德国一二三不卡| 人妻久久| 日本色婷婷| 一二区在线观看视频| 久久三| 强奸熟女一区二区三区| 很黄很色的视频在线观看| 安徽熟妇视频| 豆花视频操逼网址| 超碰97在线色男人??| 看免费的黄片| 欧美暴力猛交| 欧美十八禁导航成人| 噜噜噜亚洲精品| 岛国网址国产 | 曰本精品久久久| 精品久久久av无码免费| 精品久久久久黄少妇| 一级乱伦网站| 超碰97久久观看| 亚洲精品国产熟女| 97国产精品一区| 91麻豆天美国产欧美| 亚洲人妻精品一区二区| 天天综合色电影| 日韩福利电影网| 欧美 中文字幕 一区| 日本久久女同性恋视频| 91性| 久久婷婷色| 午夜毛片亚洲精品片国产久久久| 99热精品国产| 操我无码| 亚洲久久久久| 国内操逼视频二区| 欧美日韩操操操| 精品无人区麻豆乱码1区2区图片 | 激情综合网五月婷婷| 插入综合网| 特色a在线上| 懂色综合久久久| 91久久免费视频互動交流| 精品人妻夜夜草| 国产精品无码av| 精品无码少妇| 一区二区三区蜜桃成人撸久久东京热| 探花熟女,姿勢到位,體驗感也到位| 91老熟女老女人国产老太| 亚洲古典另类欧美在线| 综合第一页| 中文字幕少妇色 | 97视频一区| 国产人妻精品久久久一区二区三区 | 综合av社区| 免费亚洲国产精品久久一区| 亚洲第一页色| 天天日天天搞天天干| 日本五区不卡| 在线天堂999| 操逼操逼逼操操逼91 | 综合伊人激情| 日韩人妻丝袜中文字幕| 久久久久久中文| 97中文超碰| 国产白嫩漂亮KTV在线| 2017天天操天天日| 久久机热| 亚洲欧洲精品成人| 97人人操人人干| 色操逼网| 9久精品| 小草av不卡亚洲二区 | 777奇米影视777四色| 亚洲加勒比| 综合大香蕉美。| 欧美性爱一内片一区二区三区| 日韩性爱再线视频| 99国产精品视频尤物| 亚洲中文字幕在现观看| 蜜臀99精品国产高清在线观看| 日韩钢筋无码高清啾啾啾| 五月丁香激情啪啪| 黄色高清无码无码破解免费暗网| 三级特黄60分钟播放| 久夜视频| 91bbbbbb| 色欲久久99国产精品久久久久久| 999久久久久久久久| 91欧美丨精品丨入口| 少妇高潮99p| 91日韩在线| 91在线精品| 香港澳门日本三级网站| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 性爱乱伦网址| 人妻-91porn| 在线观看亚洲专区| 熟女乱伦A| 久久av无码| 欧美亚洲情色| 亚洲国产97| 久久9精品| 婷婷激情五月综合| 欧美一区二区三熟女剧情| 亚洲污污网站| 99热99re6国产在线播放| 啊啊啊好舒服视频在线观看| 久久久久久久久久久999| 欧美天天谢综合网| 久久久久久久久九九久孕交| 内射卯月麻衣| 欧美综合亚洲| 天天干人人看综合| 秋霞一集毛片观看| 伊人久久综合影院精品久久久 | 精品国产a∨一区天美传媒| 婷婷九月丁香| 久久久久久999| 伊人网高清| 日韩精品-原创伙伴| 清纯唯美第一页| 97欧美综合网| 91肉片| 国产91会所女技师在线观看| 成人性爱视频在线看| 亚洲91在线播放影院| 性色av网站| 日本三级韩三级99久久| 国产亚洲人妻综合日韩 久久| 91狠| 夜夜嗷嗷一区二区| 超碰色大香蕉| 2024年最新色情网站在线观看| 69XX一中文字幕人妻91| 亚洲精品亚洲人成在线麻豆| 看日韩美女二区三区免费操逼视频| 人妻天堂综合网| 欧美日韩国产中文超碰| 日韩不卡网操逼中文字幕日韩| 国产欧美日产一区二区三区 - 国产欧美日| 一二视频神马久久传媒| 中文字幕视频二区| 97资源视频| 99热只有这里有精品| 六月色婷婷| 亚洲一二三精品久久网| 98福利在线视频| 91高清欧美| 久久午夜鲁丝片| 特级毛片特黄久久免费看 | 另类 日韩 熟女| 狠狠综合网| 97超碰亚洲| 97se亚洲| 狼狼色丁香久久婷婷综合五月 | 成人免费不卡在线视频| 亚洲丝袜色图| 欧美色图色综合| 久久精视频美日韩在线视频| 亚洲乱色视频一区、二区在线| 射丝袜大香蕉| 亚洲中字幕日本一区二区三区| 亞洲久久直播| 淫骚熟女一区二区三区| 亚洲欧美首页| 欧美国产日韩清纯唯美| 九九九九精品一区| 中文字幕在线观看网址| 美女黄频a美女大全免费皮| 美日韩一卡二卡三卡免费人妻精品| 中亚黄色三级大片| 在线观看一级α片刺激高潮视频| 91操碰| 久久精品中文| 国产日韩精品人妻久久久久色欲网站| http://qxhbdz.com| 亚洲色图第一页| 9国产超碰| 天天看综合网| 激情欧美97| 欧美日韩操逼嗦吊| 日韩人妻精品| 亚洲小电影免费涩涩成人在线高清 | 丰满人妻aA一区二区三区| 乱伦系列一区二区| 东京热熟女亚洲视频网站| 屁股久久久久久久| 91亚洲人电影| 日韩性爱一级片| 可以免费观看的AV| 中文字幕国产| 精品久久久亚洲AV成人网站| 日日嗷| 国产日本久久免费精品| 亚洲双插| 亚洲激情AV| 综合欧美色图| 五月丁香婷婷综合| 亚洲男人天堂手机版| 免费精品福利在线观看| 欧美精品亚洲精品日韩传电影| 亚洲精品天堂久久A∨51成人漫| AV老汉| 东北少妇高潮zzzz| 美女的肌被草喷水视频| 99视频这有这里有精品| 91美女视频在线| 欧美一级美片在线观看免费| 嗯嗯,好大,好爽,好骚| 国产又猛又粗又爽又黄| 日韩不卡网操逼中文字幕日韩| 99国产精品视频尤物| 情色五月天网| 精品区国产区一区二区三区| 欧美亚洲丝袜人妻制服中文99| 97av在线视频| 97久久国产| 91天天日| 岛国免费黄色网址| 日日干夜夜骑| 久久免费精彩视频| 综合久久久久久久久91| 一本一首道人妻少妇免费久久| 色欲无码人妻日韩欧美精品| 人人操人人精品影片| 久久99综合| 呦呦一区| 91丨精品丨国产丨丝袜| 五月丁香| 精品九九国产无码| 亚洲清纯综合| 少妇国产不卡| 午夜寂寞欧美| 97超碰护士| 蜜桃色院一区久久 | 欧美日韩国产中文精品字幕自在自线| 色网亚洲人| 高清不卡国产| 亚洲操逼视频网站| 五月亭亭六月丁香| 玖日综合网| 久久久999日本大片| 欧美日韩黄片精品在线| 精品国产乱码久久久久久免费| 夜夜爽33333| 免费自拍三级综合| 深夜视频| 日本黄色天堂| 人妻在线中出视频| 嫖老熟女A片一二三区| 蜜臀久久久99久久久久 | 探花视频免费观看国产专区| 久久久9 9 9精品| 黄色二级片网站| 日逼国产| 久久久久久久九九九九九九| 97亚洲中文| 农村妇女精品一区二区| 亚洲国男人的天堂| 日本在线播放不卡一区| 翔田千里无码一区| 中文久久久| 九九九九免费视频| 日本中文字幕高跟| 97资源制服丝袜| 国产精品自在线发布| 伊人国产成人av网站| 99热国产精品| 欧美亚洲se91| 丝袜综合色图| 天天综合~91入口| 1769精品一区二区三区| 午夜福利免费精品视频| 都市久久精品激情亚洲| 人妻少妇精品久久久久久久| 精品一区二区三区18| 精吧天堂| 亚洲日韩久久精品一区| 亚洲色91C| 日本少妇va7777| 丁香五月激情五月| 九九精品热| 丁香九月激情啪| 黄色AAAAAAAAAAA大片| 操B视频日韩无码| 欧美日本成人一区二区| 国产熟女精品一区二区| 亚洲综合九九| 2024年最新色情网站在线观看| 国产AV中文| 亚洲欧美综合图片| 成人性交午夜免费片| 中文字幕一品色图| 国产乱码久久久| 婷婷五月天色网| 舔舔啊| 少妇久久久免费| 欧美色综合图片| 精品网站99999| 亚洲激情 欧美色图| 一个人在线看的黄色电影网站| 神马福利久草| 99re不伦| 亚洲国产青青| 成人开心网在线视频| 国产蜜臀在线| 日韩精品一二三| 欧美日韩中文字幕人妻| 成人五月天丁香激情综合| a级免费在线观看| 日韩熟女无码| 双插性欧美一二三区| 日本免费专区| 五月激情小说| 欧美日韩人人精品| 日韩精品操少妇| 日本超碰色精品| 曰本特级特黄特色黄色A级网站高清在线免费看 | 久久99网站| 欧美色棕合| 99啪啪视频| 国产日韩欧美| 免费视频观看60秒| 久久国产在线一区二区| 成年人黄色小视频网站| 国产又爽又黄| 欧亚不卡| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 国产91精品福利在线| 少妇滛荡视频| 黄色成品网站| 超碰97.com| 超碰在线一区| 国产精品一区二区三区,亚洲综合| 日韩无码专区| 1区2区3区中文字幕日韩| 97超碰中文字幕| 男人天堂网址| 老司机射| 欧美成人亚洲精品| 亚洲玖玖爱| 久久精品国产亚洲AV清纯| 黄色电影观看久久9| 免费观看的av| 激情文学 亚洲图片| 欧美姓爱综合网| 97精品熟女少妇一区| 五月丁香啪啪啪| 美女AV一区二区| 夜夜欢天天干| 日韩性爱再线视频| 97大色网| 日本色日夜干| 国产成人无码高清| 四虎视频在线观看| 高潮精品| 四色永久成人网站| 麻豆天美在线喷水AV| 91老熟女| 综合熟女| 中文字幕国产| 色嗨嗨在线| 欧美大香蕉97| 国产综合色精品在线观看| 国产女人成人精品视频| 亚洲色图综合网| 日韩一区二区精彩视频| 日韩在线视频1234| 国产成人五月天丁香花| 一级啊性爱在线视频| 美女啪欧美一区| 偷拍综合网| 长长久久免费视频| 精品无人区麻豆乱码1区2区图片| 国产黄片在线免费观看| 美女AV一区二区| 日韩激情电影中文字幕| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 9丨久久九九九| 日本在线不卡v二区| 美女干逼2| 免费?级毛片无码?∨蜜芽试看| 欧美日韩国产传媒在线精品| 久久高潮妇女视频| www久久99| 91熟女视频网| 精品人人插人人操| 亚洲第一视频 欧美风情 日韩| 欧美日本国产日韩激情视频| 99热8| 黄片aaaaa一区| 国产妇女精品视频青青草| 国产亚洲精品久久久久小| 亚洲av热热色| 天天躁日日躁成人字幕aⅴ| 亚洲天堂第一页| 人人看人人爰人人操 | 日韩另类色图| 久久人妻| 吉田爱美AV在线| 黄色视频60分钟| 淫乱图区 | 欧美精品日韩一区二区| 青青草大香蕉视频| 天天流夜夜操| 久久精品国产精品一区| 精品然女一区二区| 在线观看色视频| 白嫩妹子国产骚| 天天做天天爽| 1769一区| 嗯嗯啊啊啊啊轻点视频| 色五月首页| 少妇久久久久久久| 色大香蕉97N| 日本色色的视频| 综合网亚洲在线| 熟女啪啪视频| 天天做日日做| 男人的天堂Va| 午夜成人福利影视| 333kkkk·亚洲com久久| 97日韩超碰超碰中文字幕| 欧亚乱色熟一区二区三四区| 成全在线观看免费观看| 神马久久久久久久久| 91视频国品一二三区| 欧美自拍偷拍综合图片| 精品二区三四区五电影 | 亚洲欧美日韩精品久久久一区二区| 久久婷婷一区| 蜜臀AV成人精品蜜臀AV久久| 操逼网站视频漫画国产| 国产91精品在线免费| 久久超碰98| 激情五月天网| 国产曰批免费观看久久久| 老熟乱一区二区三区四区| xxx亚洲午夜天堂| 亚洲女毛多水多21P| 久久大黄片| 熟女露脸激情自拍视频| 亚洲国产一区二区三区在线| a天堂视频| 久久久新亚洲AV| 欧美精品,四区。五区| 爱射综合| 五月天色色网站| 国内精品a| 亚洲日韩电影| 亚洲日本大香蕉1| 青草香蕉网| 久久久久免费少妇| 久久久久久AⅤ无码免费肉站| 日本性感人妻91| 午夜亚洲| 亚洲天堂电影网| 欧美色图天堂网m| 淫妻综合网| 色一色综合网| 97精品熟女少妇一区| 欧美国产精品久久九九| 中文有码9| 亚洲系列欧美| 97国产色图| 欧美天堂日韩三级国产传媒| 人妻激情偷乱视频一区二区三区 | 欧美色图偷拍另类| 五月天婷婷欧美三区| 国产强奸超碰AV| www.伪伪| 最新日日夜夜天天干干| 欧美欧美啪啪视频| 97国产超碰| 一本色道久久综合精品婷婷| 91色射| 91网站18+| 欧美影音在线| 亚洲色悠悠久久88| 情侣操 逼视频99| 日韩在线97| 97青娱乐超碰久久| 亚洲天堂第一页| 91色噜噜狠狠| 乱码熟妇人妻久久久| 国产有码一区| 欧美黄色图片| 欧洲精品在线播放| 91五月天| 97视频新免费| 99色在线| 极品人妻少妇综合| julia国产在线| 992视频一区| 亚洲男人天堂AV| 大象AV在线| 日韩成人无码| 91成人高清在线观看| 欧美伊人久久综合网| 伊人丁香五月婷婷| 国产精品久久久久久久黄无码| 一级黄色性爱A级片| 网页导航五月天免费一二三区| 精品黑人一区二区| 亚洲AV免费在线| 亚洲影视综合网| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 一区e区三| 欧美精品激情| 亚洲av噜噜噜噜噜噜| 免费av高清无码| 二男一女成人A片| 五月天玖玖资源站| 性爱久久| 91殴美大片| 久久美国毛片| 日韩性爱视频免费在线| 欧洲射精91| 国产精品久久久吖| 91欧美www| 97精品久久| 翔田千里AⅤHD无码| 日本操逼视频导航| 九九热精品| 日韩精品人妻系列无码天堂| 国产妇女精品视频青青草| 亚洲影视高清第一页| 欧美日韩精品久久久久久久久东北老熟妇 | 99热超碰在线| 嗯~啊~快点 死我视频| 天天综合网1| 国产综合久| 日本精品中文字幕视频| 亚洲精品aa久久伊人| 天天摸,夜夜摸| 蜜臀AV成人精品蜜臀| 精品成人久久久人人亚洲| 日本操逼无码| 久久99人妖视频国产| 青娱乐 成人娱乐在线| 亚洲性感丝袜诱惑在线观看| 日韩猛交| 色综合av男人天堂| 伊人影院在线理论播放| 精品人妻视频一区二区在线播放| 天美精品原创av片国产| 日韩丝袜二区| 97人人爱人人做人人乐| 天天夜夜rb| 五月婷网站| 日本美女性生活久久久久久久| 亚洲少妇激情一区二区三区| 韩国免费播放一级毛片| 婷婷丁香久久| 久久久久久少妇| 香蕉国产精品麻豆亚洲欧美日韩| 热九九精品| 日韩不卡网操逼中文字幕日韩| 亚洲欧美情色| 精品人人插人人操| 亚洲熟久久| 亚洲日韩在线a不卡99精品| 亚洲色综合| 一区二三区四区视频大全套| 你懂的在线观看区国产| 亚州色交| 日韩久射综合| 免费人成?大片在线播放| 欧美综合制服在线| 狠狠色伊人亚洲综合网站色| 99超碰色| 久久久一区二区三区四区五区| 国产 v乱码一区二| 欧美日韩亚洲五月天婷婷| 国产91亚洲精品一区二区三区| 五月婷婷综合在线| 91美女视频直播| 强免费黄色网址| 亚洲情色综合网| 五月丁香拍拍激情综合三级| 国产乱弄免费在线视频。| 中英熟女操女| 香一区二区三区| 日日超碰亚洲| 欧美日韩99精品麻豆传媒| 男人综合网| 思思热在线观看| 人人妻人人爽一区二区三区| 婷婷导航| 伊人网高清| 一区二区三区在线资源| 91麻豆天美传媒在线| 在线只有精品| 天堂性色| 日韩三级久久久| TS人妖另类精品视频系列| 精品人妻二区三区| 大二网站亚洲| 日韩ab网| 丰满高潮18xxxx| 中出人妻中文字幕91在线| 亚洲 欧美日韩 另类| 亚洲乱熟女一区二区| 99久久综合| 欧美色图20p| 97欧美精品综合| 人人 操人人 操人人| 欧美日动态视频| 小情侣高清国产在线视频| 狠狠97| 精品超碰中文在线| 亚洲欧美一区二区网址| 成人久久精品| 被体育老师抱着c到高潮| 青青草大香蕉视频| 色哟哟国产精品免费网址| 亚洲一区在线观看欧洲| 成人热久久精品| 日本精品不卡一二三区| 麻豆91熟妇人妻中文字幕茄子| 91在线|亚| 操操吧亚洲乱伦视频| 麻豆黄站| 久久,精品一二三| 国产传媒午夜理伦精品| 美女网站黄页| 夜夜中出国产| 国产一在线观看| 新怡红院| 91在线色| www.yw尤物| 中文字幕日韩电影人妻| 久久9免费视频| 大香蕉伊人亚洲| 亚洲 日韩 丝袜 熟女 变态| 中国少妇啪啪视频| 999综合色| 成人婷婷丁香| 黄色av网站在线播放| 欧美亚洲天天| 97亚洲欧美日韩| 日本久久网| av天堂天堂av日韩| 天天综合官网| 日本精品久久久久久久| 女人的久久久| 首页中文字幕中文字幕免费| 黑人娇小av在线播放| 91欧美巨乳| 精品久久久久黄少妇| 日本午夜福利影院| 少妇一级婬片免费放一级a性色.| 天躁夜夜躁2021| 日韩不卡码| 高凊专区人人操| 久久精品国产96精品亚洲拳交| 秋霞Av理论一级在线| 亚洲91射| 91天美传媒在线观看| 亚洲不卡AV在线| 一区二区三区激情在线观看| 性色av大全| 蜜臀AV午夜精品久| 青青草一区二区三区四| 91jk色拍| 69超碰综合| av资源在线观看少妇| 淫荡少妇免费| 欧洲亚洲国产综合在线| 啊啊啊啊啊好多水| 97资源站国产精品| 九九九九97| 北条麻妃性愛视频| 亚洲AO在线| 亚洲无套久久嗯嗯| 25国产精品免费观看| 国产精品一区二区黄片| 97人人操人人摸人人爱| 欧美一区二区日韩三区| 国产 日韩 欧美一区| 中文字幕三四五区| 999热日韩精品| 亚洲国产精品久久久久婷婷老年| 91精品婷婷国产综合久久竹菊| 亚洲一二三精品久久网| 人人天天欧洲| 亚洲一区二区麻豆影院| 婷婷五月天成人网| 任你草| 婷婷五月天av| 色99色| 五月丁香啪| 丁香久久| 亚洲激情综合| 91狠| 你操综合| 亚洲不卡不卡中文字幕不卡 | 蜜臀操逼黄色视频操的好爽| caoni国产亚洲av| 亚洲五码一区二区三区| 欧美顶级黄色大片免费| 亚洲一卡2卡3卡4卡乱码网站 | 一个国产在线综合网站| 欧美一区二区三区四区综合| 7777奇米影视久久| 一级aaaaa欧美中文字幕录像片| 隔壁邻居波多野结衣中文字幕| 亚洲一曲日韩精品| 97人人操人人摸人人爱| www.人人cao| 成人在线视频网| 久久人妻视频网| 亚洲精品久久久久久久久豆丁网| 欧美黑人性猛交91| 九九英色视频| 亚洲日韩东京热一区| 超碰在线第一页| 熟女人妻一区二区三区| 亚洲中文字母在线播放| 五月天综合| 亚洲天堂另类小说男人| 蜜臀久久在线视频| 久草线上视频免费看| 欧美三四五区| 国产精品女aA片爽爽视频| 亚洲 无码 偷拍| 自拍视频一区在线观看| 一块操欧美| 麻豆亚洲Av成人无码一区精品| 亚洲国成人情色好看电影| 精品国产乱码久久久兰草影视| 欧美亚洲高清晰| 日日操夜夜操天天操免费观看麻豆| 日本欧美中文字幕| 免费超碰97在线观看| 久久露脸国产老熟女| 嗯嗯嗯啊啊啊在线免费观看| 国产精品suv一区| www.人人摸在线视频| 成人国产视频在线观看| 粉嫩粉嫩一区性色AV片| 九九热免费视频| 精品久久久久久久久久久久| 嫩草 我啊~嗯~在线| 亚洲激情片| 3028国产精品| 久久久精品国产亚洲伊人| 久久久男人的天堂| 久久久久久久9999| 亚洲一曲日韩精品| 婷婷五月天丁香花| 9精品在线| 999久久久国产精品| 色黄色美女大长腿午夜视频| 五月天激情小说| 国产第二页| 天天综合亚洲综合| 青草青草久热| 色九九九| 亚洲日韩精品一区二区| 国产51色综合久久免费| 亚洲色图超碰在线| 天天干夜夜| 牛牛操视频逼| 懂色AV一区二区三区| 天美传媒av在线| 波多野结衣之双飞调教在线播放| 久久婷色| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 天美传媒精品一区二区| 日韩性爱电影一区| 91网18| 极品色| 五月激情综合网| 久久久熟女一区| 亚洲图片婷婷五月天| 欧美制服另类丝袜| 亚洲天堂另类| 亚洲码专区| 国产地址二三| 91精品无码久久久久久久| 综合五月天| 亚洲色图8| 91天堂色男人的天堂| 蜜臀AV成人精品蜜臀| 欧美日本成人一区二区| 99在线精品视频| 夜夜骑日日| 综合欧美激情网| 超碰夫妻97| 9久久美女首页| 久久久久久久强迫| 欧美日韩夜夜| 神马午夜久久| 青青操青娱乐| www欧美91| 综合色图区| 久久久女人| 日本免费亚洲欧美| 日韩欧美久久婷婷网站| 国产一区二区在线电影| 骚逼自拍99| 91人妻做a观看视频| 欧美亚洲se91| 日韩无码黄色片| 韩日精品福利视频一区不卡在线免| 色y情视频免费看| 久草婷婷| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 日韩三级久久久| 久久人妻| 超碰性爱97| 亚洲成人在线高清| 爱爱久久| 在线无码操| 东京热AV男人的天堂| 9999免费精彩视频| 久久久久久久久久久久色网| 天天干天天做| 97视频在线免费观看| 蜜桃臀 后入 一区 二区 三区 在线| 一级一性爱免费视频| 色婷婷综合久久久久中文一区二区 | 欧美日韩亚洲电影| 韩国三级理论在线| 九九九九九九综合| 大奶啊啊好爽| av黄图片在线观看| 青青操在线亚洲视频观看欧美在线| 日韩99精品视频综合区| 99热18这里只有精品| 日韩av乱伦| 91w欧美| www.AV有限公司一区| 成人免费福利网站国产| 天天久久久久久| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 91成人社区| 亚洲第一成人影院色播| 91老司机视频| 97超碰色屌| 午夜理论片在线观看免费| 五月天久久人妻| 嗯嗯,啊啊,国产精品| 欧美国产精品| 9精品久久久久| 亚州成人A√| 久久精品店| 亚洲影视综合| 高潮综合网| 久久激情网| 国产黄色视频久久| 夜夜骑日日| 热天堂一区二区| 丝袜美腿制服人妻二区中文字幕| 丰满人妻一区二区三区四区| 啊啊啊在线观看免费视频| 日本精品一区二区中文字幕| 亚洲性网| 啊啊啊啊啊舒服| 按摩中文字幕| 在线v中文字幕一区二区三区 | 91色欧美| 亚洲激情色片| 五月综合激情网| 国产精品视频麻豆入口| BBBBB97COM| 大乔未久88一区| 亚州精品一区二区三区香中文字幕在线| 欧美日韩黄片精品在线| 午夜啊啊| 熟女高潮合集-永久久久-成人AV | 人人乐大香蕉| 国产亚洲色婷婷久久99精品91葵花宝典| 97干色| 天美传媒精品久久视频| 97日视频| 天天肏美女| 桃花色涩综合影院| 天天草夜夜草高潮片| 碰碰97| 人妻娇喘 激情视频| 亚洲性图91| 久久av色| 午夜精品一区二区三区三上悠亚| 综合免费无码中文| 强奸乱伦 亚洲一区| 欧美92| 精品丰满熟妇人妻一区| 欧美国产成人在线| 欧美日韩免费专区在线| www.婷婷六月天| 国产精品视频白浆免费| www.久久制服糖| 国产精品com| 91少妇人妻| 亚洲成人在线乱码色午夜| 黄色十八禁| 亚洲男人天堂2016| 人妻出轨一区二区三区| 天天干美少妇一区| 色婷视频| 亚洲一区日韩| 亚洲欧洲国产综合av| 亚洲AV噜噜狠狠网址蜜桃动漫| 2025年A片视频精品| 国产美女高潮| 九九碰九九爱97超| 日韩熟女精一区二区三区不卡| 日韩成人性日韩成人性爱视频在线免费观看| 久草免费在线一区二区| 内射小黄片| 激情小说图片亚洲首页| 国产精品不卡av免费在线观看| 日本加勒比无码专区| 少妇激情一区二区三区视频| 午夜福利 成人 91| 日韩在线观看AV| 中出91视频| 天天综合91入口| 欧美日韩制服| 伊人麻豆传媒| 亚州欧美色图| 美女黄网| 久久精品国产精品一区| 少妇熟女1区2区3区| 日韩免费簧片| 日韩欧美大力操| 日韩精品国产一区二区| av在线不卡一区二区三区| 日本视频一区二区三区| 日本色色色视频| 女人被添高潮免费视频| 91精品久久久久久77777| 久久伊人大香蕉| 国产精品老熟女一区二区| 亚洲欧洲美腿丝袜| 超碰99热中文字幕| 九九国产热| 四虎影视国产精品| 96麻豆精品一区二区三区| 97精品久久| 一二三四视频中文字幕在线看| 久久成人午夜精品影院| 亚洲成人性爱在线观看| 丁香六月啪| 亚洲免费精品一区| 激情综合av| 久操视频在线| 熟女人妻精品一区二区视频| 性无码专区2020| 精品一区二区成人| 99自拍视频在线观看| 老鸭窝亚洲毛片| 亚洲第91页| 97se亚洲| 中文字幕精品免费一区二区| 中文字幕亚洲热播人妻| 综合激情五月丁香| 超碰 另类 欧美 | 9久精品视频在线观看| 男人天堂久久精品不卡| 日韩色| 香蕉久久AⅤ...| 婷婷久久五月| 色婷婷综合久久中文字幕雪峰| 日本最新1区2区3区| 五十路三区在线| 北约熟女超碰| 日韩精品99999| 久久精品夜色国产亚洲AV| 99少妇|