@porosys/pss
Version:
Porosys Server Setup (pss): General-purpose server setup and automation tool (including Netdata management)
37 lines (28 loc) • 1.23 kB
text/typescript
import { execa } from "execa";
import fsExtra from "fs-extra";
import { isCronJobPresent } from "../../../utils/is-cron-job-present.util";
import path from "path";
import { getDirname } from "../../../utils/dirname-from-import-meta.util";
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.');
}