-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
49 lines (42 loc) · 1.4 KB
/
Copy pathindex.js
File metadata and controls
49 lines (42 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
'use strict';
const nodemailer = require('nodemailer');
const diskspace = require('diskspace');
const alert_quota = 10; //in GB
const refreshTime = 60; //in minutes
const diskUnit = 'C';
const byte_to_giga = Math.pow(2, 30);
const serverName = 'Help Desk';
const mailSender = 'checkspace@email.com';
const serverAdminMail = 'admin@email.com';
const transporter = nodemailer.createTransport({
host: 'YOUR-SMTP-HOST',
port: 25,
secure: false,
ignoreTLS: true
});
let message = {
from: mailSender,
sender: mailSender,
to: serverAdminMail,
subject: `Spazio in esaurimento sul server ${serverName}`
};
setInterval(_ => {
diskspace.check(diskUnit, (err, result) => {
if ((result.free / byte_to_giga) < alert_quota) {
message.html = `<p>
Attenzione! Lo spazio sul server ${serverName} sta terminando!</br>
Lo spazio libero restante è di ${Math.floor(result.free / byte_to_giga)} GB su ${Math.floor(result.total / byte_to_giga)} GB.
</p>
<em>Questa mail è stata inviata dal sistema di controllo di spazio libero sul server ${serverName}</em>`;
transporter.sendMail(message, (err, info) => {
if (err) {
console.log(err);
} else {
console.log(info);
}
});
} else {
console.log(`Lo spazio libero è di ${Math.floor(result.free / byte_to_giga)}`);
}
});
}, refreshTime * 60000);