網(wǎng)站首頁 編程語言 正文
一、刪除XX天(默認(rèn)10天)之前某個目錄下面帶.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 表示文件修改時間距離當(dāng)前為0天的文件,即距離當(dāng)前時間不到1天(24小時)以內(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)生日志文件過大,占用磁盤空間),可以與定時任務(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定時任務(wù)
執(zhí)行命令:
[root@localhost ~]# crontab -e
10 0 * * * /data/auto-del.sh >/dev/null 2>&1
查看定時任務(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)建自己的定時任務(wù),5個*的含義是,第一個*是分,第二個*是小時,第三個*是日,第4個*是月,第5個*是周,第6列是命令
2.-exec ? command ? {} \; ? ? ?—–將查到的文件執(zhí)行command操作,{} 和 \;之間有空格
3.find 命令三個選項(xiàng)用于按照時間查找,單位都是小時:
mtime — 文件內(nèi)容上次修改時間
atime — 文件被讀取或訪問的時間
ctime — 文件狀態(tài)變化時間
情況一:正常情況(系統(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
原文鏈接:https://blog.csdn.net/luozhuwang/article/details/52525335
相關(guān)推薦
- 2023-07-04 Linux直接創(chuàng)建SSH無密碼連接
- 2022-05-09 Python?matplotlib繪制實(shí)時數(shù)據(jù)動畫_python
- 2022-11-04 C#序列化與反序列化集合對象并進(jìn)行版本控制_C#教程
- 2022-06-13 Python數(shù)據(jù)類型及常用方法_python
- 2022-03-31 C語言與C++項(xiàng)目實(shí)現(xiàn)相互調(diào)用_C 語言
- 2022-04-20 C++中的函數(shù)你真的理解了嗎_C 語言
- 2022-07-29 Pytest框架?conftest.py文件的使用詳解_python
- 2024-07-15 Spring Boot多環(huán)境指定yml或者properties
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支