
tmp是临时文件。
TMP和TEMP文件是各种软件或系统产生的临时文件,也就是常说的垃圾文件。Windows产生的临时文件,本质上和虚拟内存没区别,只不过临时文件比虚拟内存更具有针对性,单独为某个程序服务,这导致两个问题:一是占据空间,二是删除后有导致程序无法运行的风险。
tmp文件的甄别
不能所有的临时文件都一概而论。
比如,C盘根目录的TEMP目录,是很多工具程序临时文件的指向目录,没有这个目录的话,临时文件无法创建,这些工具软件就很可能会出错,所以要删除的话,只应该清空里面的临时文件垃圾,而不能把TEMP这个目录都撸掉了。
Windows里通常也有一个TEMP文件,是系统默认的临时文件的放置地方,也不建议连目录都删除了,定期清空里面的垃圾即可。
1.做自动部署系统时精简的一个脚本,主要功能是清理所有目录的日志
2.根据给定日志目录,删除时间 结合crontab进行清理日志,清理完成后,后在/var/log/deltelog/ 生成按照月的清理日志
3.扩展,因为脚本采用mtime(最后修改时间)进行删除,所以可以适用于删除过期备份等,不受文件名称的限制
shell小窍门
find –type f –print 时会根据换行或者空格来输出查找的文件,在不同的sh下有不同的`反应,如果不做处理结合xargs 进行删除 更改 *** 作,会有影响
所以需要增加 –print0 用 null来 作为边界符号,才敢结婚 xargs –o 来格式化输入
使用find 的时候 遵循最小结果集原则,find解析式从左到右,所有确保你在最左边的过滤符号能够过滤最大数据
你可以根据你的需要增加到crontab中
shell脚本
复制代码 代码如下:
#!/bin/sh
###########################
# log blog.duplicatedcode.com
# in_day_num: like 1 2 is 2day ago logs
# in_log_path like tomcat log home
###########################
in_log_path=${1}
in_day_num=${2}
tmp__log=/var/log/log/"`date +%Y%m`.log"
Log()
{
inner_num=${1}
#find log
echo "[`date`] >>start logs---" >>$tmp__log
find ${in_log_path} -type f -mtime ${inner_num} -print0 | xargs -0 rm -rf
echo "[`date`] >>end logs---" >>$tmp__log
}
init()
{
mkdir -p /var/log/log/
}
main()
{
init
if [ -z ${in_log_path} ]then
echo "[`date`] >>error log_path not init---" >>$tmp__log
return
fi
inner_day_num=+7
if [[ -n ${in_day_num} ]] &&[[ ${in_day_num} -ge 1 ]] then
${inner_day_num}=${in_day_num}
fi
Log ${inner_day_num}
}
main
/tmp 下的文件在每次关机后都会被清理干净,若想手动清理,清理的时候不推荐使用rm -rf命令,这样有时会引起程序的僵死。推荐使用tmpwatch命令来进行清理。
附tmpwatch功能及使用说明:
tmpwatch简介:tmpwatch 工具从指定的目录中递归地搜索,并删除在指定时间段内没有被访问的文件。tmpwatch 一般被用来清扫那些用来临时驻留文件的目录(譬如,/tmp)tmpwatch 忽略符号链接,它不会切换文件系统,而且只删除空目录和常规文件。
tmpwatch语 法:tmpwatch [-afqv][--test][超期时间][目录...]
tmpwatch参数说明:
-a或--all 删除任何类型的文件。
-f或--force 强制删除文件或目录,其效果类似rm指令的"-f"参数。
-q或--quiet 不显示指令执行过程。
-v或--verbose 详细显示指令执行过程。
-test 仅作测试,并不真的删除文件或目录
实例:sudo /usr/sbin/tmpwatch -afv 3 /tmp (清除/tmp下三小时以内没有使用的文件,并将结果输出)。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)