LINUX.ORG.RU

CentOS 7 ipset

 ,


1

1

Доброе утро!

При выполнении скрипта выдает ошибку: ipset v6.29: Sets cannot be swapped: the second set does not exist

Код скрипта: ######################################### # Заполняем цепочку в ipset, обновляем и сохраняем ########################################## $ipset = '/usr/sbin/ipset'; $ipsetName = 'blockip'; $ipsetTemp = 'blocktmp'; $ips = file ('/etc/squid/ip.acl'); system(«$ipset create $ipsetTemp hash:ip»); foreach ($ips as $ip){ system(«$ipset add $ipsetTemp $ip»); } system(«$ipset swap $ipsetTemp $ipsetName»); system(«$ipset destroy $ipsetTemp»); system(«$ipset -S > /home/zapret_info/ipset-save»); system(«echo 'Ipset update successful' >> /home/zapret_info/log»); ?>

Интересно что в логе всё успешно: *** Fri Oct 27 19:07:58 +10 2017 BEGIN Parsing done. ACL files created. Ipset update successful

НО, файл ipset-save не заполняется.

Права у всех файлов проверил.



Последнее исправление: cetjs2 (всего исправлений: 6)

#!/bin/sh
set -e
set -x

DIR='/home/zapret_info'
ipset create tmpset hash:ip
cat /etc/squid/ip.acl | xargs -n 1 ipset add tmpset
ipset swap tmpset blockip
ipset destroy tmpset
ipset -S > $DIR/ipset-save
echo 'Ipset update successful' >> $DIR/log
anonymous
()
Ответ на: комментарий от anonymous

Интересно, спасибо, я к сожалению не силён в программировании

И совсем забыл сказать, что тот код который я в теме написал, успешно выполняется на одной виртуальной машине, а на недавно залитой новой виртуальной машине, выдаёт ошибку

mexces
() автор топика
Ответ на: комментарий от mexces

Там же английским по белому написано, что второй сет не существует. И в скрипте у тебя создается только один. На другой машине у тебя работает, потому что сет уже был создан, либо руками, либо еще как.

Deleted
()
Ответ на: комментарий от Deleted

да, я уже потом понял, помог скрипт

#!/bin/bash

systemctl stop iptables echo «Stop iptables» #ipset destroy blocktmp ipset destroy blockip echo «destroy blockip set» ipset create blockip hash:ip echo «create blockip» systemctl start iptables echo «start iptables» exit 0

mexces
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.