linux 下tmp目錄檔案怎麼被刪除的?
tmp目錄下檔案什麼時候會刪除?
寫這篇文章是我要重啟長時間執行的hadoop叢集的時候,關閉不了相應的服務。檢視shell指令碼看到,要找到服務的pid檔案,才能重啟,一般情況下pid檔案都會儲存在tmp目錄下,但是pid檔案卻不見了
為了保證tmp目錄不爆滿,系統預設情況下每日會處理一次tmp目錄檔案,原理就是使用了tmpwatch。
tmpwatch 作用
tmpwatch作用:removes files which haven’t been accessed for a period of time
刪除指定的目錄中一段時間未訪問的檔案。
tmpwatch 命令安裝
如果不是完全安裝,系統中一般不會有tmpwatch的命令,可以手動安裝;
yum install tmpwatch
tmpwatch命令引數
語法
tmpwatch [-afqv][--test][超期時間][目錄...]
一些tmpwatch引數
-u, --atime 基於訪問時間來刪除檔案,預設的。
-m, --mtime 基於修改時間來刪除檔案。
-c, --ctime 基於建立時間來刪除檔案,對於目錄,基於mtime。
-M, --dirmtime 刪除目錄基於目錄的修改時間而不是訪問時間。
-a, --all 刪除所有的檔案型別,不只是普通檔案,符號連結和目錄。
-d, --nodirs 不嘗試刪除目錄,即使是空目錄。
-d, --nosymlinks 不嘗試刪除符號連結。
-f, --force 強制刪除。
-q, --quiet 只報告錯誤資訊。
-s, --fuser 如果檔案已經是開啟狀態在刪除前,嘗試使用“定影”命令。預設不啟用。
-t, --test 僅作測試,並不真的刪除檔案或目錄。
-U, --exclude-user=user 不刪除屬於誰的檔案。
-v, --verbose 列印詳細資訊。
-x, --exclude=path 排除路徑,如果路徑是一個目錄,它包含的所有檔案被排除了。如果路徑不存在,它必須是一個絕對路徑不包含符號連結。
-X, --exclude-pattern=pattern 排除某規則下的路徑。
如果系統中已經安裝了tmpwatch,在/etc/cron.daily/目錄下有一個tmpwatch指令碼檔案,我電腦中指令碼檔案的內容如下:
[[email protected] conf]# more /etc/cron.daily/tmpwatch
#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
-X '/tmp/hsperfdata_*' 10d /tmp
/usr/sbin/tmpwatch "$flags" 30d /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
if [ -d "$d" ]; then
/usr/sbin/tmpwatch "$flags" -f 30d "$d"
fi
done
從程式碼中可看出,會刪除tmp目錄下10天未訪問過的檔案,同時從指定的目錄中遞迴地搜尋並刪除指定目錄中一段時間未訪問的檔案。
注:上面的指令碼檔案是每天的定時任務,如果想刪除兩小時內未被訪問或者修改的檔案,不能在這個腳本里面修改,因為這個指令碼的執行週期1天。你可以直接使用如下命令去實現“刪除 xxx 天沒有被訪問/修改過的檔案”
tmpwatch 20 /tmp/
如果不寫單位,預設是小時,上面是刪除20小時沒有被訪問/修改過的檔案。
tmpwatch給我們帶來的問題?
系統中很多服務的pid的檔案都會存放在/tmp目錄下,從上面指令碼檔案可以看到系統會定期刪除未被訪問的檔案,這樣就會導致很多服務無法正常關閉等現象。
解決方法
可以使用-U引數,進行排除
-U, --exclude-user=user
Don't remove files owned by user, which can be an user name or numeric user ID.
具體引數請使用man tmpwatch檢視。
相關推薦
linux 下tmp目錄檔案怎麼被刪除的?
tmp目錄下檔案什麼時候會刪除? 寫這篇文章是我要重啟長時間執行的hadoop叢集的時候,關閉不了相應的服務。檢視shell指令碼看到,要找到服務的pid檔案,才能重啟,一般情況下pid檔案都會儲存在tmp目錄下,但是pid檔案卻不見了 為了保證tmp目錄不
系統技術非業餘研究 » Linux下如何知道檔案被那個程序寫
晚上朔海同學問: 一個檔案正在被程序寫 我想檢視這個程序 檔案一直在增大 找不到誰在寫 使用lsof也沒找到 這個問題挺有普遍性的,解決方法應該很多,這裡我給大家提個比較直觀的方法。 linux下每個檔案都會在某個塊裝置上存放,當然也都有相應的inode, 那麼透過vfs.write我們就可以知道
Linux 下 etc/ 目錄檔案詳解
3. 網路配置檔案3.1 /etc/hosts#/etc/hosts#檔案格式: IPaddress hostname aliases#檔案功能: 提供主機名到IP地址的對應關係,建議將自己經常使用的主機# 加入此檔案中,也可將沒有DNS記錄的機器加入到此檔案中,# 這樣會方
Linux系統下/tmp目錄下的臨時檔案清理
系統使用時間長後會產生臨時檔案(/tmp下),需要清理。但清理的時候不推薦使用rm -rf。這樣有時會引起程式的僵死。 推薦使用tmpwatch命令來進行清理。關於tmpwatch的說明如下:名稱 : tmpwat
在Linux下進入目錄,目錄下建立、修改、刪除檔案所需許可權
首先,我們用root許可權建立一個目錄名為dir, 此時檔案擁有者對改目錄具有讀、寫和執行許可權,所屬組和other對改目錄具有讀和執行許可權。現在去除dir的所以許可權, 此時dir目錄的
linux下實現目錄即文件的完整刪除
truct remove define limits In continue tin mit ret 功能: 1、刪除目錄 2、刪除文件 3、刪除不為空的目錄即下屬文件 #ifndef _DELETE_FILE #define _DELETE_FILE #in
Linux下清空檔案內容而不刪除檔案
測試過程中發現將日誌級別降低後,執行很短時間會產生很大的日誌,但是歷史日誌又不需要看,容器執行過程中又不能刪除該檔案(不然不會產生新日誌檔案,徐重啟)。後來從網上找如下方法,MARK下: 比如tomcat的Catalina.out檔案清空但不刪除: # echo "" > Catali
Linux運維入門~24.系統常見排錯——2.核心檔案被刪除
1.設定光碟啟動拯救模式法 以虛擬機器為例,我們刪掉446位元組MBR磁碟引導 dd if=/dev/zero of=/dev/vda bs=446 count=1 這時候系統就無法開機了 關閉後 進入virt-manager 新增光碟驅動。選擇已有映
解決 linux下編譯make檔案報錯“/bin/bash^M: 壞的直譯器:沒有那個檔案或目錄” 問題
PS背景:我在公司做sdk 的pc端開發,所以經常會在win下編譯通過之後跑到linux下再執行一次已確保能支援多平臺。 今兒在win下跑完一程式,然後放到linux下跑的時候,我用指令:sudo ./build.sh但是卻沒有任何反應。於是我換
Linux 下獲取目錄a下檔案b的操作
最近在看Linux下檔案操作相關章節,遇到了這麼幾個結構體,被搞的暈乎乎的,今日有空,仔細研究了一下,受益匪淺。 DIR結構體類似於FILE,是一個內部結構,以下幾個函式用這個內部結構儲存當前正在被讀取的目錄的有關資訊(摘自《UNIX環境高階程式設計(第二版)》)
【轉發】centos 7開啟FTP以及新增使用者配置許可權,只允許訪問自身目錄,不能跳轉根目錄 linux下ftp配置檔案詳解
1.切換到root使用者 2.檢視是否安裝vsftp,我這個是已經安裝的。 [[email protected] vsftpd]# rpm -qa |grep vsftpd vsftpd-3.0.2-11.el7_2.x86_64 3.如果沒有發現,則安裝。 yum ins
linux下複製目錄下所有檔案,包括隱藏檔案到指定目錄
linux下複製當前目錄下面檔案到目錄b的話: cp -rf * b 這樣子只能複製非隱藏檔案和目錄。 cp -rf .* b 因為.*包含了.和..,這樣子複製會出問題,當前目錄的上一層目錄都可能被複制過去。 這裡可以藉助ls -A命令,來過濾.和..目錄並且包
Linux下/proc目錄下檔案分析
轉載地址:http://blog.csdn.net/zdwzzu2006/article/details/7747977 1. /proc目錄 Linux 核心提供了一種通過 /proc 檔案系統,在執行時訪問核心內部資料結構、改變核心設定的機制。proc檔案系統是一個偽檔案系統,它只存在記憶體當中,
linux下如何恢復rm命令刪除的檔案
在linux下rm -rf 是一個很可怕的命令,因為下達這個命令意味著一旦刪除的檔案是無法挽回的,事實是如此嗎?真的沒有補救措施了嗎?答案是委婉了,在一定的條件下可以補救,大家可能熟悉windows下刪除的補救措施是通過相關的軟體實現的,在linux下同樣可以做到補救,但是
Linux下查詢大檔案,大目錄的方法
查詢大檔案 //列舉出當前目錄所有大於800M的檔案 find . -type f -size +800M12 第一個方法只用到了一個命令find,它能夠幫我們做一些檔案查詢的操作。它常用的引數有: - type:型別。POSIX支援——b:塊裝置文件、d:目錄、c:字
Linux下自動備份資料庫和刪除歷史備份檔案
一、Linux下自動備份資料庫通常情況下,檔案備份大家喜歡名稱+備份日誌來命名備份檔案。下面以此為例說明:(1)建立備份指令碼檔案,並編寫備份指令碼。[root@test02 backup]# touch backup.sh #建立指令碼檔案 [root@test02 ba
004-Linux下操作目錄常用命令(mkdir)
刪除目錄 note 當前 目錄 name ges 否則 技術分享 mdi 1,mkdir 創建目錄 當前目錄下創建一個目錄 mkdir dir 創建含有子目錄的方式 mkdir -p dir/t11/t1
【轉】Linux下/proc目錄簡介
map kms slab proc文件系統 文件格式 應用 environ 一段時間 內存映射 1. /proc目錄Linux 內核提供了一種通過 /proc 文件系統,在運行時訪問內核內部數據結構、改變內核設置的機制。proc文件系統是一個偽文件系統,它只存在內存當中,而
Linux下web目錄權限設置
name 網站目錄 用戶和用戶組 設置 運行 讀取文件 chown lin 服務器 1、nginx和php-fpm運行用戶為www 2、我們假設web目錄所屬著為ftpuser 3、將web目錄的用戶和用戶組設置為ftpuser和www,如下命令:chown -R ft
CentOS7下/tmp目錄裏面的文件默認保留多久
/tmp早上有同事問了下CentOS7下/tmp目錄下文件目錄保留多久,我記得CentOS6下默認好像是30天,CentOS7下不太確認,所以查了下:[root@kvm02 tmpfiles.d]# cd /usr/lib/tmpfiles.d/ [root@kvm02 tmpfiles.d]# ls abr