@porosys/pss
Version:
Porosys Server Setup (pss): General-purpose server setup and automation tool (including Netdata management)
27 lines (26 loc) • 1.2 kB
JavaScript
import { execa } from 'execa';
import fsExtra from 'fs-extra';
import { isCronJobPresent } from '../../../utils/is-cron-job-present.util.js';
import path from 'path';
import { getDirname } from '../../../utils/dirname-from-import-meta.util.js';
const { readFileSync, writeFileSync } = fsExtra;
const dirname = getDirname(import.meta);
export const dbBlockAttackersCommand = async () => {
const tempaltePath = path.join(dirname, 'db-block-attackers.template.sh');
let content = readFileSync(tempaltePath, 'utf-8');
content = content.replace('__DB_PORT__', '27017');
const scriptPath = '/usr/local/bin/db-block-attackers.sh';
writeFileSync(scriptPath, content);
if (!(await isCronJobPresent(scriptPath))) {
const cronJob = `* * * * * ${scriptPath}`; // every minute
await execa(`(crontab -l 2>/dev/null; echo "${cronJob}") | crontab -`, {
shell: true,
stdio: 'inherit',
});
console.log(`✅ Cron job for db-block-attackers setup successfully.`);
}
else {
console.log(`ℹ️ Cron job for db-block-attackers already exists.`);
}
console.log('✅ DB block attackers script setup completed.');
};