定期检查服务器中文件



我具有以下 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

每天都在调用此脚本。

相关内容

  • 没有找到相关文章

最新更新