find dir -iregex "\log" | xargs rm -rf
先用find命令找到指定目录下以log结尾的所有文件的全路径,然后用xargs把结果传递给rm命令的输入参数,然后用rm命令删除就可以了。
#!/bin/bash
#当前路径
MYDIR=`dirname "$0"`
#切换到当前路径
cd "$MYDIR"
#删除当前文件夹下所有空文件夹
find "$MYDIR" -type d -exec rmdir -p {} \;
#对于文件夹大小大于0的文件夹无效。
#$MYDIR加双引号可以删除带空格的文件夹。
试试看这个代码。
1、新建sh文件
删除30天以前的文件
#!/bin/bash
find /home/sdu/server/node1/logs/ -mtime +30 -print | xargs rm -rf
//注释-mtime是距离上一次修改时间 -print是只显示文件 xargs是获取find查找的结果在通过rm命令删除
2、部署服务器
3、设置crontab定时任务
打开定时任务配置文件:crontab -e
定时调用testsh: /home/testsh
保存退出:按键ESC,输入:wq
第一个 一小时当中的第几分钟 0-59
第二个 一天当中的第几小时 0-23
第三个 一个月当中的第几天 1-31
第四个 一年当中的第几月 1-12
第五个 一周当中的星期几 0-7(0和7都代表周日)
代表任何时间,比如第一个 就代表一小时中的每分钟都执行
, 代表不连续的时间,比如 0 8,12,16 代表每天8,12,16点0分执行
- 代表连续的时间范围,比如0 5 1-6 代表在周一到周六凌晨5点0分执行
/n 代表每个多久执行一次,比如/10 代表每隔10分钟执行一次
例子:
45 22
在22点45分执行
0 17 1
在每周1的17点0分执行
0 5 1,15
在每月1号和15号的凌晨5点0分执行
40 4 1-5
在每周一到周五的凌晨4点40分执行
/10 4
在每天的凌晨4点,每隔10分钟执行一次
0 0 1,15 1
每月1号和15号,每周1的0点0分都会执行
注意:星期几和几号最好不要同时出现,他们的意义都是天,容易混淆
4、查看目前都有那些定时任务
crontab -l
5、备注:
定时任务需要crond服务的支持
1启动方法 service crond restart
2该服务默认是开机启动的
取消定时任务
1全部取消 crontab -r
2取消某个 crontab -e 配置文件,删除要取消的哪一行配置
若定时任务存在,编辑shell脚本后,不用做任何 *** 作,不放心的话可以启动脚本看下是否报错 sh 脚本名字
先设定实验环境:
#
造
5
个
目录,每个目录下,造
3
个
文件和两个子目录如下:
cd
$home/tmp
for
i
in
d1
d2
d3
d4
d5
do
mkdir
-p
$i
touch
$i/1txt
$i/2txt
$i/3txt
mkdir
-p
$i/tmp1
$i/tmp2
done
#
检验测试环境:
$
ls
-lr
d1
total
0
-rw-r--r--
1
wenlee
comm
0
dec
22
10:35
1txt
-rw-r--r--
1
wenlee
comm
0
dec
22
10:35
2txt
-rw-r--r--
1
wenlee
comm
0
dec
22
10:35
3txt
drwxr-sr-x
2
wenlee
comm
256
dec
22
10:35
tmp1/
drwxr-sr-x
2
wenlee
comm
256
dec
22
10:35
tmp2/
#
利用下列脚本来实现你要做的:
cd
$home/tmp
for
i
in
/1txt
do
echo
"found
$i,
save
$i
and
remove
everything
else
under
$(dirname
$i)/"
save_this_file=$(basename
$i)
curr_dir=$(dirname
$i)
#
把这个1txt暂时存到/tmp里面去,为了避免已经有同样的档案名称在/tmp,加上$$
(ie
pid)
mv
$i
/tmp/${save_this_file}$$
rm
-rf
$curr_dir
mkdir
-p
$curr_dir
mv
/tmp/${save_this_file}$$
$curr_dir
done
#
屏幕执行输出如下:
found
d1/1txt,
save
d1/1txt
and
remove
everything
else
under
d1/
found
d2/1txt,
save
d2/1txt
and
remove
everything
else
under
d2/
found
d3/1txt,
save
d3/1txt
and
remove
everything
else
under
d3/
found
d4/1txt,
save
d4/1txt
and
remove
everything
else
under
d4/
found
d5/1txt,
save
d5/1txt
and
remove
everything
else
under
d5/
#
复验实验环境:
$
ls
-l
d/
-rw-r--r--
1
wenlee
comm
0
dec
22
10:35
d1/1txt
-rw-r--r--
1
wenlee
comm
0
dec
22
10:35
d2/1txt
-rw-r--r--
1
wenlee
comm
0
dec
22
10:35
d3/1txt
-rw-r--r--
1
wenlee
comm
0
dec
22
10:35
d4/1txt
-rw-r--r--
1
wenlee
comm
0
dec
22
10:35
d5/1txt
ok
thanks!
尊敬的联想用户,您好!
非常抱歉,给您的使用带来困惑了。
shell文件夹一般是用来存放安卓系统相关的脚本,由于涉及到系统文件建议您最好不要删除,以免造成系统异常。
针对您SD卡空间的问题,如果您把程序安装在SD的话那么这部分被使用的空间是隐藏的,另外可能还有一些隐藏的文件占据着一部分的空间,建议您可以使用安全软件对SD卡进行垃圾扫描清理,请了解。
更多关于手机使用的小知识,可以参考官方视频网站:
>
1、crontab -l检查
2、crontab -e添加
3、root计划任务保存的文件是/var/spool/cron/root
4、根据实际情况修改/var/spool/cron/root即可
5、例如,计划任务保存在/opt/crontxt里面
0 4 /tomcat6/bin/startupsh;
6、在第五行添加或指定字符串
sed -i '5 r crontxt /var/spool/cron/root
或者
sed -i '/cronstart/r crontxt' /var/spool/cron/root
7、删除最后一行
sed -i '$d' /var/spool/cron/root
以上就是关于编辑一个linux 的shell脚本,达到查找系统中的log文件并删除全部的内容,包括:编辑一个linux 的shell脚本,达到查找系统中的log文件并删除、编写一个shell脚本,删除当前目录下空文件、shell脚本删除30天之前日志等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)