我正在尝试在Node.js中编写文件复制代码:
function archiveFolder(site, callback) {
//console.log("Processing Site2 " + site );
var path = srcDir + '/' + site;
var startDate = moment(new Date(), 'YYYYMMDD');
asyncCounter++;
console.log("getting list of files for site " + site);
fse.readdir(path, function(err, files) {
console.log("got list of files for site " + site);
if (err) {
console.log(err);
return callback(err);
}
async.eachLimit(files, 5, function(file, callback2) {
var endDate = moment(file, 'YYYYMMDD');
var diff = startDate.diff(endDate, 'days');
fs.stat(path + '/' + file, function(err, stats) {
try {
if (err) {
return callback2(err);
}
if (/^\d{8}$/i.test(file) && stats.isDirectory() && diff >= 7) {
fse.ensureDir(destDir + '/' + site, function(err) {
fse.copy(path + '/' + file, destDir + '/' + site + '/' + file, function(err) {
try {
if (err) {
//console.log(err);
return callback2(err);
} else {
console.log("copied " + site + '/' + file);
return callback2();
}
} catch (e) {
console.log(e);
return callback2(err);
}
});
});
} else {
// //console.log("failed " + path + '/' + file)
return callback2();
}
} catch (e) {
console.log(e);
return callback2(err);
}
});
}, function(err) {
if (!err) {
//console.timeEnd("site");
console.log("finished Site " + site + " asyncCounter " + asyncCounter);
return callback();
} else {
return callback(err + " test");
}
});
});
}
在控制台或系统日志上仍然没有任何错误消息/var/log/messages
这种行为可能是什么原因?我可以增加服务器上的ulimit
,但我想确认这是由于这个"文件数量打开"限制。