linux自动清理 linux开机自动挂载

大家好,如果您还对linux自动清理不太了解,没有关系,今天就由本站为大家分享linux自动清理的知识,包括linux开机自动挂载的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

Linux定时删除3个月之前的文件

详情讲解:

find/home/weblogic/tmp-mtime+10-name"."-exec rm-rf{};

将/home/weblogic/tmp目录下所有10天前带"."的文件删除

find:linux的查找命令,用户查找指定条件的文件

/home/weblogic/tmp:想要进行清理的任意目录

-mtime:标准语句写法

+10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件

".":希望查找的数据类型,".jpg"表示查找扩展名为jpg的所有文件,""表示查找所有文件,这个可以灵活运用

-exec:固定写法

rm-rf:强制删除文件,包括目录

{} \;:固定写法,一对大括号+空格++;

操作步骤

ok,保存退出

3.#crontab-e

将脚本文件加入到系统计划任务,到点自动执行

输入:

准备测试脚本

测试定时任务使用这个脚本,测试该脚本是否可以每分钟新建一个文件夹?

添加定时任务

crontab-e添加定时命令

linux下清理内存以及swap

第一步:先执行sync命令

#sync

sync命令用于强制被改变的内容立刻写入磁盘,更新超块信息,以防止释放,sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。

第二步:清理linux内存缓存

#echo 3>/proc/sys/vm/drop_caches

一般系统是不会自动释放内存的

关键的配置文件/proc/sys/vm/drop_caches。这个文件中记录了缓存释放的参数,默认值为0,也就是不释放缓存。他的值可以为0~3之间的任意数字,代表着不同的含义:

0–不释放

1–释放页缓存

2–释放dentries和inodes

3–释放所有缓存

此指令输入立即生效,意在释放所有缓存。

第三步:关闭swap,再开启swap

(如果只是清理swap,第二部可以不用进行操作,因为操作了第二步关闭swap时会使用更长的时间)

#swapoff-a 这一步因为是后台在一点一点的释放,如果配置的swap超大,这里就等待得超久一些

#swapon-a 再开启

linux什么时候开始使用虚拟内存(swap)

A.[root@wenwen~]# cat/proc/sys/vm/swappiness

60

上面这个60代表物理内存在使用60%的时候才会使用swap

swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,

swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

通常情况下:

swap分区设置建议是内存的两倍(内存小于等于4G时),如果内存大于4G,swap只要比内存大就行。另外尽量的将swappiness调低,这样系统的性能会更好。

B.修改swappiness参数

临时性修改:

[root@wenwen~]# sysctl vm.swappiness=10

vm.swappiness= 10

[root@wenwen~]# cat/proc/sys/vm/swappiness        

10

永久性修改:

[root@wenwen~]# vim/etc/sysctl.conf

加入参数:

vm.swappiness= 35

然后在直接:

[root@wenwen~]# sysctl-p

查看是否生效:

cat/proc/sys/vm/swappiness

35

设置自动清理Linux系统中n天前的文件的方法

服务器每周会产生一次全局备份文件,大小约100G左右,需要定期清理。

工作时间网站访问大,服务器I/O高的时候删除大数据会对服务器状态产生不好的影响。于是想利用计划任务自动执行。

在我的备份目录/bakcup下,每次备份文件均以日期形式命名目录名:

复制代码代码如下:

# ls

2013-12-23 2014-01-06 2014-01-20 2014-02-03

2013-12-30 2014-01-13 2014-01-27 2014-02-10

删除部分备份同时保留部分,可以使用find命令,如我要保留最近四周备份的文件,每次备份间隔七天:

复制代码代码如下:

# find/bakcup/-maxdepth 1-type d-mtime+28

/bakcup/2014-01-06

/bakcup/2014-01-13

/bakcup/2013-12-23

/bakcup/2013-12-30

-maxdepth 1:设置查找目录深度为1,只在/backup目录下查找,如不加此参数会将下级目录中的文件都列出

-type d:设置查找类型为目录

-mtime+28:查找28天前的目录

查找结束后可用-exec参数连接删除命令

复制代码代码如下:

rsync--delete-before-d/data/test/{} \;

所以,整个命令就是:复制代码代码如下:

# find/bakcup/-maxdepth 1-type d-mtime+28-exec rsync--delete-before-d/data/test/{} \;

最后可以把命令放入脚本,设置crontab自动执行。

提醒:

使用命令前,应先在服务器上试用查找部分的命令,如只查找出要清理的目录,则可以继续。

不排除某些系统会将./目录查找出来,一定要看清楚,防止出现意外情况。

另外可将-exec替换为-ok,效果相同,在删除前提醒用户确认。

PS:rm命令与rsync命令的效率比较

rm

rm命令大量调用了lstat64和unlink,可以推测删除每个文件前都从文件系统中做过一次lstat操作。

lstat64的次数低于文件总数,还有另外的原因,之后会在另一篇文章中说明。

getdirentries64这个调用比较关键。

过程:正式删除工作的第一阶段,需要通过getdirentries64调用,分批读取目录(每次大约为4K),在内存中建立rm的文件列表;第二阶段,lstat64确定所有文件的状态;第三阶段,通过unlink执行实际删除。这三个阶段都有比较多的系统调用和文件系统操作。

rsync

rsync所做的系统调用很少。

没有针对单个文件做lstat和unlink操作。

命令执行前期,rsync开启了一片共享内存,通过mmap方式加载目录信息。

只做目录同步,不需要针对单个文件做unlink。

另外,在其他人的评测里,rm的上下文切换比较多,会造成System CPU占用较多——对于文件系统的操作,简单增加并发数并不总能提升操作速度。

阅读剩余
THE END