linux脚本删除文件(脚本删除文件夹)
linux 自动删除文件脚本
rm_/opt/scommnet/upload()
{
find / -type -f -mtime +2 -exec rm {} \;
}
然后把这个函数放入用户的.bash_profile中去,就可以开机自动删除2 天前创建或修改的文件了
如果你是root ,那么你的.bash_profile文件就在根目录下中,如果你是普通用户,那么这个文件,就在$HOME中
find命令在“/”下查找普通文件,修改时间在2日以内的文件,-exec是来执行命令,rm的,后面的{} \;是-exec执行命令时必须加上的东西
试下吧,祝你好运
linux日志清理脚本清理不掉
linux是一个很能自动产生文件的系统,日志、邮件、备份等。虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情。不用你去每天惦记着是否需要清理日志,不用每天收到硬盘空间不足的报警短信,想好好休息的话,让我们把这个事情交给机器定时去执行吧。
二、 分析日志
查看日志路径和日志命名规则:
要清理这个目录下面如此命名规则的日志。
三、方法
这时我想的肯定是希望能写一个脚本把这些日志清除掉,但不是删除掉。那么现在需要实现3步:
? ? ? ? ?1.找到所有项目的log的位置
? ? ? ? ?2.清除或者删除log内容
? ? ? ? ?3.定时执行脚本
删除和清空日志命令:
find?对应目录?-mtime?+天数?-name?"文件名"?-exec?rm?-rf?{}?\;
实例命令:
find?/opt/soft/log/?-mtime?+7 -name?"*.log"?-exec?rm?-rf?{}?\;
说明:
将/opt/soft/log/目录下所有7天前带".log"的文件删除。具体参数说明如下:
find:linux的查找命令,用户查找指定条件的文件;
/opt/soft/log/:想要进行清理的任意目录;
-mtime:标准语句写法;
+7:查找7天前的文件,这里用数字代表天数;
"*.log":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三;
-exec:固定写法;
rm?-rf:强制删除文件,包括目录;
{}?\;?:固定写法,一对大括号+空格+\+;
清空方法:
find?/opt/soft/log/?-mtime?+7 -name?"*.log"?-type f -print?-exec truncate -s 0 {} \;? ? -将符合这样一个条件的文件查到出来并赋予它0M的大小。
-type f -print:?将符合的文件打印出来
truncate -s 0 aa.txt:意思是将aa.txt的大小变成0M,即把aa.txt的内容清空了
用脚本删除linux服务器下某目录下的文件
declare -i flag 设置flag;
for I in `ls 目录`; do 遍历目录
flag=0 假设0为不存在
for J in `获取数据库文件名列表`; do 遍历数据文件名
if I==J; then 如果存在就跳出循环;
flag=1 设置存在标签
break 跳出内层循环
fi
done
if [ $flag -eq 0 ]; then 如果flag没有改变,那么文件是不存在的;
rm -rf $I 删除文件
fi
done
linux如何删除正在被使用的文件
linux删除正在被使用的文件的操作方法如下:
1、首先打开Linux系统,创建一个空文件和空文件夹。如图所示:
2、rm 文件名 (功能:删除文件)提示:是否删除文件,输入yes。如图所示:
3、rm *? ?(功能:删除该路径下的所有文件)
4、rm -f? 文件名 (功能:删除文件,不再询问是否删除)
5、rm -r 文件夹 (功能:递归删除文件夹)
6、rm -rf 文件或者目录 (功能:删除文件获得递归删除目录,最常用)
linux 下如何编写定时删除某目录下文件的脚本?
自己编写crontab设定计划任务就是了,
那个服务就是做这些定时的,自动化的工作用的。要写什么脚本的,一个命令搞定。
给你个手册页自己看吧。
补充回答:
运行这个命令:
crontab
-e
此命令将打开一个文本编辑器以添加新任务。
*
20
*
*
*
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
用对应的文本编辑器命令保存退出(vi编辑器是按esc后打:wq)
如果你对这种方式不熟悉,也可以直接改/etc/crontab,我看到你是要删除root文件夹内的目录,假设你有root权限(因为/etc/crontab所有者是root,并且只有以root身份执行删除命令才能删除root
home内的文件),用以下命令打开此文件:
vi
/etc/crontab
将光标移动至最后一行,按o键新开一行输入以下内容:
*
20
*
*
*
root
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
给你解释下此行的含义吧,前五个以4个空格分隔开的值依次表示:分、时、日、月、周,如果取所有值就是打*号,如果你想周期性的运行一个任务,crontab也接受范围指定,比如说一天中的早8点到晚6点每隔一小时(就是每两小时,将会在8,10,12,14,16,18执行)执行你这个删除命令这样写:
*
8-18/2
*
*
*
root
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
第一个字段是分钟,取值范围:0-59
第二个字段是小时。取值范围:0-23
第三个字段是一个月中的第几天,取值范围:1-31
第四个字段是一年中的第几个月,取值范围:1-12
最后一个字段是一个星期中的第几天,以星期天开始依次的取值为0~7,0、7都表示星期天。
下一个字段是执行该命令的用户身份,这里是root用户,最后一个字段就是定时运行的命令。
关于Linux下脚本删除文件,比如有一堆文件在/root/work/file 文件夹下,文件名为file+数字。
可以写循环,不过不如直接用通配符删简单
比如
rm -f file0[0-2].txt