我具有以下 socket.io
的后端。每次我们在新的浏览器选项卡中通过localhost:3000
打开连接时,在服务器的文件夹tmp/
中创建了名为套接字ID的文件。
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);
server.listen(3000);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function(socket) {
var fs = require('fs');
fs.writeFile("tmp/" + socket.id, "hello", function (err) {
if (err) { return console.log(err) };
console.log('a file is saved!');
});
});
因为插座可能会断开连接,以后无效或闲置。我想在服务器中设置一个简单的清洁规则。例如,在每天的4pm
上,我想删除昨天4pm
之前保存的所有文件。
所以有人知道如何每天设置此定期检查 删除?
编辑1:与@Georoot讨论后,我意识到我需要向刚刚删除TMP文件的连接发送通知消息。我更喜欢在网站nodejs代码中拥有所有网络代码(尽管Nodejs代码可以调用外部bash)。
您是否考虑过Node-Cron?编辑:与FS.Stats文档结合使用,您可以使用MTIME(修改时间)过滤每个文件。fs.ReadDir获取文件。
这比nodejs更像是bash相关的问题。
识别删除的文件
首先,让我们编写一个脚本,该脚本将检查当前时间之前创建的24 hours
的文件。获取文件时间
date -r $filename
在内部循环中运行以查找需要删除的文件。您可以简单地将来自ls
输出的输出。
删除文件
只需使用
删除文件rm -rf $filename
在最后一步中确定。
添加到cron
每天都在调用此脚本。