java定时任务删除过期文件

本文介绍了在Ubuntu 18.04上使用Java实现定时删除过期文件的方法,包括确保Linux更新文件访问时间以避免误删,服务配置以及利用systemd设置开机自启动。

java定时任务删除过期文件(文件删除,服务可配置,服务器开机自启动)
1、文件删除好解决。Linux系统下文件有三个时间属性:atime(访问时间),mtime(修改时间),ctime(改变时间)。这些文件的时间属性在什么情况下Linux系统会对其做更改这里不再说了,网上很多博客都有详细讲解。但有一个点需要注意的是,Linux为了提升文件系统的IO性能和每次读文件的时候都去从磁盘读而减少对磁盘的伤害下默认的文件系统挂载方式是relatime(即,不更新每次访问文件的atime),这里说的不更新不是永不更新。例如,在第一次对某文件使用cat、more或者less等命令时,该文件的atime会同步更新,但之后的每一次使用上述命令打开文件并不会更新文件的atime,这里可以通过stat命令来观察文件atime的变化。为了解决上述问题需要添加Linux文件系统的挂载参数,只需要将参数strictatime加入磁盘挂载的配置文件/etc/fstab中,重启系统后每次使用cat、more、less等命令查看文件内容都会同步更新atime。这样就不会误删那些没有修改但经常需要访问的文件啦。
2、服务可配置也不详细说明了。
3、服务器自启动。由于我用的系统是Ubuntu 18.04开机自启动跟之前的版本会有所不同,不再使用initd管理系统,而是使用systemd来管理系统。systemd 默认读取 /etc/systemd/system下的配置文件,该目录下的文件会链接/lib/systemd/system/下的文件。
a、执行ls /lib/systemd/system你可以看到有很多启动脚本,其中就有我们需要的rc.local.service。一般正常的启动文件主要分成三部分:[Unit] 段:启动顺序与依赖关系;[Service] 段:启动行为,如何启动,启动类型;[Install]段:定义如何安装这个配置文件,即怎样做到开机启动。
在这里插入图片描述

b、可以看出,/etc/rc.local 的启动顺序是在网络后面,但是显然它少了Install段,也就没有定义如何做到开机启动,所以显然这样配置是无效的。因此我们就需要在后面帮他加上[Install]段:
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
在这里插入图片描述

c、这里需要注意一下,Ubuntu-18.04 默认是没有/etc/rc.local这个文件的,需要自己创建。然后把你需要启动的脚本写入/etc/rc.local。
d、做完这一步,还需要最后一步。前面我们说systemd默认读取/etc/systemd/system下的配置文件,所以还需要在/etc/systemd/system目录下创建软链接:
ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/
e、重启系统即可生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值