欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

shell腳本實(shí)現(xiàn)定時(shí)刪除文件或文件夾

 更新時(shí)間:2022年08月22日 15:24:11   作者:小李廣  
本文主要介紹了shell腳本實(shí)現(xiàn)定時(shí)刪除文件或文件夾,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、刪除XX天(默認(rèn)10天)之前某個(gè)目錄下面帶.log的日志文件,并且輸出文件顯示刪除的文件

#!/bin/sh

#如果沒有輸入變量值,默認(rèn)天數(shù)為10
start=$(date +%y-%m-%d-%H%M%m)
File=/temp/delete_$start.txt
FilePath=/data

echo $File

if [ ! -n "$1" ];
then
?? ?day=10
else
??? ?day=$1
fi

#-mtime 10 表示文件修改時(shí)間距離當(dāng)前為0天的文件,即距離當(dāng)前時(shí)間不到1天(24小時(shí))以內(nèi)的文件
echo "輸出日志文件:"
echo "find $FilePath -mtime +$day -name "*.log*" > $File"
find $FilePath -mtime +$day -name *.log* > $File

echo "刪除日志文件:"
echo "find $FilePath -mtime +$day -name "*.log*" ?-exec rm -rf {} \;"
find $FilePath -mtime +$day -name *.log* ?-exec rm -rf {} \;

二、刪除XX天(默認(rèn)10天)之前的文件夾

#!/bin/sh

#如果沒有輸入變更值,默認(rèn)天數(shù)為10
start=$(date +%y-%m-%d-%H%M%m)
File=/temp/delete_backup_$start.txt
FilePath=/data/backup

echo $File

if [ ! -n "$1" ];
then
?? ?day=10
else
??? ?day=$1
fi

#刪除10天之前的文件夾
echo "輸出日志文件:"
echo "find $FilePah -type d -ctime +$day > $File"
find $FilePath -type d -ctime +$day > $File

#壓縮10天之前的文件夾
echo "find $FilePath -type d -ctime +$day | xargs gzip -r"
find $FilePath ?-type d -ctime +$day | xargs gzip -r

echo "刪除日志文件:"
echo "find $FilePath -type d -ctime +$day | xargs rm -rf"
find $FilePath ?-type d -ctime +$day | xargs rm -rf

三、清空文件內(nèi)容(產(chǎn)生日志文件過大,占用磁盤空間),可以與定時(shí)任務(wù)結(jié)合使用

每天早上6點(diǎn)執(zhí)行    0  6 * * *  sh /log/CleanLogFile.sh

#!/bin/bash
path=/log
filename=$path/BigLog.txt

#搜索大于10KB的文件
#-size +10k
#搜索小于10KB的文件
#-size -10k
#搜索等于10KB的文件
#-size 10k

if [ $# -ne 1 ] ?
then ?
? ? ? ? #echo "默認(rèn)設(shè)置文件大小為500M" ?
? ? ? ? filesize=500M
? ? else
? ? ? ? filesize=$1
fi?


echo "設(shè)置清除文件大?。?filesize"


if [ ?-f "$filename" ]; then ? ?
? ? rm -rf $filename
? ? echo ?"原始文件已刪除"
else
? ? echo "$filename不存在"
fi?

find $path -name "*.*" ?-size +$filesize -exec ls -lh {} \; | awk '{ print $5,$9}' > $filename

for line in `cat $filename`
do
?? ?#如果有匹配的內(nèi)容則立即返回狀態(tài)值0
? ? echo "$line" | grep -q "$path"
? ? #$? 是指上一條命令的執(zhí)行狀態(tài), 0就是正常
? ? if [ ?$? -eq 0 ]
? ? then
? ? ? ? #獲取文件類型
? ? ? ? filetype=${line#*.}
? ? ? ? if [ $filetype == "zip" ?];then
? ? ? ? ? ? echo "rm -rf $line"
? ? ? ? ? ? rm -rf $line
? ? ? ? else
? ? ? ? ? ? echo "執(zhí)行清空命令 cat /dev/null > $line"
? ? ? ? ? ? cat /dev/null ?> ?$line
? ? ? ? fi
? ? fi
done

編寫shell定時(shí)任務(wù)

執(zhí)行命令:

[root@localhost ~]# crontab -e

10 0 * * * /data/auto-del.sh >/dev/null 2>&1

查看定時(shí)任務(wù):

[root@localhost ~]# crontab -l
10 0 * * * /data/auto-del.sh >/dev/null 2>&1

備注:

每隔30分鐘root執(zhí)行一次:*/30 * * * *  /data/auto-del.sh >/dev/null 2>&1

每天晚上1點(diǎn)執(zhí)行:0 1 * * *  /data/auto-del.sh >/dev/null 2>&1

1.通過crontab –e來創(chuàng)建自己的定時(shí)任務(wù),5個(gè)*的含義是,第一個(gè)*是分,第二個(gè)*是小時(shí),第三個(gè)*是日,第4個(gè)*是月,第5個(gè)*是周,第6列是命令

2.-exec   command   {} \;      —–將查到的文件執(zhí)行command操作,{} 和 \;之間有空格

3.find 命令三個(gè)選項(xiàng)用于按照時(shí)間查找,單位都是小時(shí):

mtime — 文件內(nèi)容上次修改時(shí)間
atime — 文件被讀取或訪問的時(shí)間
ctime — 文件狀態(tài)變化時(shí)間

情況一:正常情況(系統(tǒng)有service命令)

重啟服務(wù)命令:[root@centos6 /]# service crond restart

啟動服務(wù)命令:[root@centos6 /]# service crond start

停止服務(wù)命令:[root@centos6 /]# service crond stop

4.如果需要用到環(huán)境變量,必須的腳本中添加環(huán)境變量

例如,加載java變量

export JAVA_HOME="/opt/jdk1.8.0_91"
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$LAMPP_HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:${ANT_HOME}/bin

到此這篇關(guān)于shell腳本實(shí)現(xiàn)定時(shí)刪除文件或文件夾的文章就介紹到這了,更多相關(guān)shell 定時(shí)刪除內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux命令之網(wǎng)絡(luò)命令route詳解

    Linux命令之網(wǎng)絡(luò)命令route詳解

    route命令是Linux系統(tǒng)中的一個(gè)網(wǎng)絡(luò)管理工具,用于顯示和操作IP路由表,它可以用來查看當(dāng)前系統(tǒng)的路由表信息,添加、刪除或修改路由表項(xiàng),以及顯示路由表中的詳細(xì)信息,本文給大家介紹Linux命令之網(wǎng)絡(luò)命令route詳解,感興趣的朋友一起看看吧
    2023-10-10
  • Bash Shell 注釋多行的幾種方法

    Bash Shell 注釋多行的幾種方法

    這篇文章主要介紹了Bash Shell注釋多行的幾種方法,需要的朋友可以參考下
    2014-12-12
  • linux仿寫chmod命令

    linux仿寫chmod命令

    這篇文章主要介紹了linux仿寫chmod命令的方法,需要的朋友可以參考下
    2014-02-02
  • linux sudo密碼輸入時(shí)顯示星號的操作方法

    linux sudo密碼輸入時(shí)顯示星號的操作方法

    在輸入linux sudo密碼的時(shí)候終端是不顯示任何東西的,我們不知道我們按下的密碼到底輸入進(jìn)去了沒有,如果可以像在網(wǎng)站上登錄賬號密碼的時(shí)候顯示星號多好,下面小編給大家介紹下linux sudo密碼輸入時(shí)顯示星號的操作方法
    2018-01-01
  • Shell中處理包含空格的文件名實(shí)例

    Shell中處理包含空格的文件名實(shí)例

    這篇文章主要介紹了Shell中處理包含空格的文件名實(shí)例,需要的朋友可以參考下
    2014-05-05
  • SHELL四則運(yùn)算和比較

    SHELL四則運(yùn)算和比較

    這篇文章主要介紹了SHELL四則運(yùn)算和比較 ,需要的朋友可以參考下
    2014-03-03
  • vtune自動安裝腳本分享

    vtune自動安裝腳本分享

    這篇文章主要介紹了vtune自動安裝腳本分享,需要的朋友可以參考下
    2014-03-03
  • linux shell實(shí)現(xiàn)守護(hù)進(jìn)程腳本

    linux shell實(shí)現(xiàn)守護(hù)進(jìn)程腳本

    這篇文章主要介紹了linux shell實(shí)現(xiàn)守護(hù)進(jìn)程腳本,非常簡單實(shí)用的代碼,這里推薦給小伙伴。希望大家能夠喜歡。
    2015-03-03
  • Linux命令中的rpm安裝命令

    Linux命令中的rpm安裝命令

    RPM 的全稱為Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下軟件包的軟件。下面通過本文給大家分享Linux命令中的rpm安裝命令,需要的的朋友參考下吧
    2017-06-06
  • 反彈shell升級全交互式shell

    反彈shell升級全交互式shell

    本文主要介紹了反彈shell升級全交互式shell,以提高遠(yuǎn)程控制能力,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01

最新評論