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]段:定义如何安装这个配置文件,即怎样做到开机启动。

java 过期对象 java删除过期文件_linux

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

[Install]

WantedBy=multi-user.target

Alias=rc-local.service

java 过期对象 java删除过期文件_java 过期对象_02

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、重启系统即可生效。