由於使用paas,利用jenkins工具生成的映象檔案很多。
support同事每次都會要求我們刪除比較舊的映象,只保留最新的5個。
上網找了一下,終於找到乙個大神整理的【ref:
參考後寫了乙個自己的
#!/bin/bash
#不同專案的映象檔案的名稱不同
filenames[0]='20190725*'
filenames[1]='201908*'
path='/home/wasup/temp/tmp/'
for filename in $;
do#拼接檔案路徑
releasepath=$$
cd $
#判斷目錄是否存在
if [ $? -eq 0 ];
then
echo $path
echo "contains file:"
echo $
#輸出所有內容
echo *
num=`ls -l $ | grep '^-' | wc -l`;
if [ $num -gt 5 ];
then
#計算超過5個多多少
num=`expr $num - 5`
clean=`ls -tr $ | head -$num | xargs`
echo "will delete file:"
echo $
#-n1 每次處理乙個檔案
ls -tr $ | head -$num | xargs -i -n1 rm -rf {}
fifi
done
前言
因為公司的檔案伺服器上存有所需的專案war包,一段時間以後,大量不用的工程檔案占用磁碟空間,需要定期刪除無用的檔案。這些檔案歸屬不同的專案目錄下,建立的時間各不相同。某些陳舊專案已經數年沒有更新。因此,不能只定期刪除某個目錄下的檔案,更不能按時間刪除多少天以前的檔案。下面話不多說了,來一起看看詳細的實現過程吧。
推進
完工
#!/bin/bash完善#不同的專案有不同的路徑
#專案的主幹目錄是相同的
for path in $;
do #拼接檔案路徑
releasepath=$$
cd $releasepath
#判斷是否存在該目錄
if [ $? -eq 0 ];
then
echo $releasepath
echo "contains file:"
#輸出所有的內容
echo *
num=`ls -l | grep '^d' | wc -l`;
#判斷資料夾的數量是否超過5個(我只想保留最新的5個資料夾)
if [$num -gt 5 ];
then
#計算超過5個多少
num=`expr $num - 5`
clean=`ls -tr | head -$num | xargs`
echo "will delete file:"
echo $
#-n1 每次處理1個檔案
ls -tr | head -$num | xargs -i -n1 rm -rf {}
fifidone
實際部署時,覺得直接刪除檔案不妥,應該是先備份到某一目錄,再次執行指令碼的時候,刪除上次備份的檔案。
#!/bin/bash自動化處理#清空備份檔案
backup="/tmp/storage/"
cd $backup
if [ $? -eq 0 ];
then
rm -rf *
fi#清除超過5個檔案之外最老的那些檔案
for path in $;
do releasepath=$$
cd $releasepath
if [ $? -eq 0 ];
then
echo $releasepath
echo "contains file:"
echo *
num=`ls -l | grep '^d' | wc -l`;
if [$num -gt 5 ];
then
num=`expr $num - 5`
clean=`ls -tr | head -$num | xargs`
echo "will delete file:"
echo $
#把檔案移動到備份檔案夾更安全
ls -tr | head -$num | xargs -i -n1 mv {} $backup
fifidone
將上述指令碼儲存為removecode.sh,然後新增crontab。
crontab -e
0 0 1 * * /opt/project/removecode.sh > /opt/project/remove.log 2>&1 &
linux實現自動刪除最舊的幾個檔案詳解
前言 因為公司的檔案伺服器上存有所需的專案war包,一段時間以後,大量不用的工程檔案占用磁碟空間,需要定期刪除無用的檔案。這些檔案歸屬不同的專案目錄下,建立的時間各不相同。某些陳舊專案已經數年沒有更新。因此,不能只定期刪除某個目錄下的檔案,更不能按時間刪除多少天以前的檔案。下面話不多說了,來一起看看...
Linux檔案刪除
linux是通過link的數量來控制檔案刪除的,只有當乙個檔案不存在任何link的時候,這個檔案才會被物理的刪除。那麼這個link是什麼呢?就需要了解軟連線和硬鏈結。linux具有為乙個檔案起多個名字的功能,稱為鏈結。被鏈結的檔案可以存放在相同的目錄下,但是必須有不同的檔名,而不用在硬碟上為同樣的資...
刪除linux的亂碼檔案
當發現linux 裡有中文命名檔案,亂碼檔案想刪除時,請使用inode 刪除 root localhost tmp ls l total 1024 r r r 1 root root 624541 may 3 09 33 mkisofs 2.01 10.7.el5.x86 64.rpm srwxrw...