Here is a real practice: House keep log files which have been out of date for N days.
if [ $# -ne 2 ];then
echo "Usage: $0 [develop|uat|prod] [ N days ago ]"
exit -1
fi
ENV=$1
N_DAYS_AGO=$2
function getDays {
_thisMon=$1
_thisYear=`date +%Y`
_div4=`expr $_thisYear \% 4`
_div100=`expr $_thisYear \% 100`
_div400=`expr $_thisYear \% 400`
if [ $_thisMon -eq 2 ];then
if [ $_div4 -eq 0 -a $_div100 -ne 0 -a $_div400 -ne 0 ];then
echo 28
else
echo 29
fi
elif [ $_thisMon -eq 2 -O $_thisMon -eq 4 -o $_thisMon -eq 6 -o $_thisMon -eq 9 -o $_thisMon -eq 11 ];then
echo 30
else
echo 31
fi
}
logFolder="/script/logs"
TMP_FILE=.house_keep_log.tmp
#`date +%m`
THIS_YEAR=`date +%Y`
THIS_MONTH=`date +%m`
THIS_DAY=`date +%d`
DUE_YEAR=$THIS_YEAR
DUE_MONTH=$THIS_MONTH
DUE_DAY=$THIS_DAY
if [ $THIS_DAY -gt $N_DAYS_AGO ];then
DUE_DAY=`expr $THIS_DAY - $N_DAYS_AGO`
else
_TMP=`expr $N_DAYS_AGO - $THIS_DAY`
LAST_MONTH=`expr $THIS_MONTH - 1`
if [ $LAST_MONTH -eq 0 ];then
LAST_MONTH=12
DUE_YEAR=`expr $THIS_YEAR -1`
fi
LAST_MONTH_DAYS=`getDays $LAST_MONTH`
if [ $_TMP -gt $LAST_MONTH_DAYS ];then
echo "Can NOT accept $N_DAYS_AGO as 'N days ago' parameter!"
exit -1
fi
DUE_MONTH=$LAST_MONTH
DUE_DAY=`expr $LAST_MONTH_DAYS - $_TMP`
if [ $DUE_MONTH -lt 10 ];then
DUE_MONTH="0"${DUE_MONTH}
fi
fi
echo "The date of today is :$THIS_YEAR-$THIS_MONTH-$THIS_DAY"
echo "The date of $N_DAYS_AGO days ago is :$DUE_YEAR-$DUE_MONTH-$DUE_DAY"
cd $logFolder
touch -t "${DUE_YEAR}${DUE_MONTH}${DUE_DAY}0000" $TMP_FILE
for log in *.log
do
ls -l $log
if [ $log -ot $TMP_FILE ];then
#log is before FILE_B
echo "Delete $log"
rm -f $log
fi
done
rm -f $TMP_FILE
分享到:
相关推荐
在Ubuntu VPS上安装Docker时,可能会遇到一个常见的错误:“Cannot connect to the Docker daemon at unix:///var/run/docker.sock.” 这个问题通常是由于Docker守护进程未运行或者是由于Linux内核版本过低导致的。...
The Art Of Unix Programming
UNIX, Third Edition 版本: The Textbook 3rd Edition By 作者: Syed Mansoor Sarwar – Robert M. Koretsky ISBN-10 书号: 1482233584 ISBN-13 书号: 9781482233582 Edition 版本: 3 出版日期: 2016-11-04 pages ...
### UNIX编程艺术——深入解析《The Art of Unix Programming》 #### 一、引言 《UNIX编程艺术》这本书由IT界的重量级人物Eric S. Raymond撰写,深入探讨了Unix系统领域内的设计理念、文化和哲学思想。本书不仅...
在Windows 10中使用Windows Subsystem for Linux (WSL) 运行Docker时,可能会遇到“Cannot connect to the Docker daemon at unix:///var/run/docker.sock.”的错误。这个错误通常意味着Docker守护进程(Docker ...
根据提供的文件信息,我们可以总结以下...以上总结的知识点涵盖了Unix操作系统设计的关键方面,从历史背景到系统结构,再到文件系统内部工作原理和系统调用接口,这些内容为Unix系统的深入研究和理解提供了重要的基础。
《The Art of Unix Programming》是Eric Steven Raymond撰写的一本经典著作,主要探讨了Unix操作系统的编程艺术和设计哲学。这本书深入解析了Unix的核心理念,并将其应用于广泛的软件开发实践中,不仅对于Unix开发者...
[计算机科学经典著作].The.Design.Of.The.Unix.Operating.System
《Unix编程艺术》(The Art of Unix Programming) 是由 Eric Steven Raymond 编写的一本经典著作,首次出版于2003年。本书不仅探讨了Unix操作系统的基本原理和发展历程,还深入分析了其独特的设计哲学和技术细节。...
2.1 UNIX操作系统的体系结构 2.2 系统概念介绍 2.2.1 文件子系统概貌 .2.2.2 进程 2.3 内核数据结构 2.4 系统管理 2.5 本章小结 2.6 习题 第3章 数据缓冲区高速缓冲 3.1 缓冲头部 3.2 缓冲池的结构 3.3 ...
《Unix The Textbook》是Syed Mansoor Sarwar和Robert M. Koretsky所著的一本关于Unix系统学习的教材。这本书是由CRC Press出版,隶属于Taylor & Francis Group旗下的出版品牌,该出版社位于美国佛罗里达州博卡拉顿...
解决docker报错Cannot connect to the Docker daemon at unix
Learning the Unix Operating System is a handy book for someone just starting with Unix or Linux, and it's an ideal primer for Mac and PC users of the Internet who need to know a little about Unix on ...
Writing better software: 30 years of UNIX development wisdom In this book, five years in the making, the author encapsulates three decades of unwritten, hard-won software engineering wisdom....
Amazon上五星的绝世好书!参考链接: http://www.amazon.com/UNIX-Internals-Frontiers-Uresh-Vahalia/dp/0131019082
### Unix的DATE详解 在Unix系统中,`date`命令是一个非常重要的工具,它不仅可以用来显示当前的时间和日期,还能用于设置系统的时间。通过一系列的格式化选项,用户可以定制输出的时间格式,使得数据处理更加方便...