编辑一个linux 的shell脚本,达到查找系统中的log文件并删除

编辑一个linux 的shell脚本,达到查找系统中的log文件并删除,第1张

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天之前日志等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9646908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存