как запускать этот скрипт в cron.d каждую минуту?

я использую человечность 15.04, я получил огромные DDos-атаки, которые я хотел остановить, который нападает путем блокирования дюйм/с взломщиков, таким образом, я планирую запустить этот скрипт каждую минуту внутри cron.d и заставить его автоматически запуститься

как я могу сделать это

#!/bin/bash

#Collecting list of ip addresses connected to port 20000

netstat -plan|grep :20000|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1 > /root/iplist

#Limit the no of connections
LIMIT=10;

for ip in `cat /root/iplist |awk '{print $2}'`;do

if [ `grep $ip /root/iplist | awk '{print $1}'` -gt $LIMIT ]
then
echo "100 connection from $ip... `grep $ip /root/iplist | awk '{print $1}'` number of connections... Blocking $ip";

#Blocking the ip ...

/etc/rc.d/init.d/iptables save > /dev/null;
CHECK_IF_LOCALIP=0;
/sbin/ifconfig | grep $ip > /dev/null;
if [ $? -ne $CHECK_IF_LOCALIP ]
then
{
FLAG=0;
grep $ip /etc/sysconfig/iptables | grep DROP > /dev/null;
if [ $? -ne $FLAG ]
then
iptables -I INPUT -s $ip -j DROP;
else
echo " Ipaddress $ip is already blocked ";
fi
}
else
echo " Sorry, the ip $ip cannot be blocked since this is a local ip of the server ";
fi
fi
done 
1
задан 5 August 2016 в 21:10

2 ответа

Фокусировка на cron запись, а не содержание сценария, принимая сценарий ~/foobar.sh, чтобы запускать скрипт каждую минуту как cron задание, открывать Ваш cron таблица на crontab -e и добавлять:

*/1 * * * * ~/foobar.sh

Удостоверяются, что сценарий является исполняемым файлом сначала.

*/1 в мелком столбце сделает crond для выполнения сценария каждую минуту, в то время как, если Вы помещаете всего 1, сценарий будет выполняться только на первой минуте данного часа (часов).

2
ответ дан 7 December 2019 в 13:43

Для добавления записи в crontab используйте sudo crontab -e и затем откройте редактора (вероятно, vi, или программа позволит Вам выбрать). Затем добавьте задачу после структуры: minute hour (day of month) month (day of week) command. Используйте числовые значения или * для выражения 'любого' из него. Каждое задание в одной строке. И затем, сохраните его.

В Вашем случае будет, что-то как */1 * * * * /full/path/to/the/script.sh

Видит эта страница , мог помочь Вам полностью понять как работы crontab и cronjob.

0
ответ дан 7 December 2019 в 13:43

Другие вопросы по тегам:

Похожие вопросы: