UNPKG

@porosys/pss

Version:

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

27 lines (26 loc) 1.2 kB
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.'); };