UNPKG

@porosys/pss

Version:

Porosys Server Setup (pss): General-purpose server setup and automation tool (including Netdata management)

37 lines (28 loc) 1.23 kB
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.'); }