Автоматическое обновление GeoIP базы

Автор: | 29.10.2014

Скрипт предоставляет возможность в автоматическом режиме обновлять GeoIP.dat файл.

Способ №1 для ленивых:)

Вдохнули поглубже и выполняем в терминале:
Скрипт установки:

  1. Создаст нужные каталоги.
  2. Установит все зависимости.
  3. Скачает скрипт для обновлений.
  4. Настроит крон, для автоматических обновлений, по умолчанию крон будет запускаться каждый понедельник в 5:35 утра по серверному времени.

Выполнить от рута:

wget -q -O - https://unixhelp.org/installers/geoip | python

Ждем окончания работы и радуемся.

Способ №2 для настойчивых:)

Копируем Текс скрипта.

#!/USR/BIN/ENV PYTHON
__author__ = 'am6puk'
import urllib2
import gzip
import os
import shutil
import subprocess
url = "https://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz"
 
file_name = url.split('/')[-1]
 
with open(file_name, "wb") as code:
    code.write(urllib2.urlopen(url).read())
 
destFile = file_name[:-3]
sourceFile = file_name
zipFile = gzip.open(sourceFile, "rb")
unCompressedFile = open(destFile, "wb")
decoded = zipFile.read()
unCompressedFile.write(decoded)
zipFile.close()
unCompressedFile.close()
shutil.move(destFile, "/usr/share/GeoIP/"+destFile)
os.remove(file_name)
runing = subprocess.Popen("/etc/init.d/apache2 reload", shell=True)
runing.wait()

Создаем папку в /opt/

mkdir /opt/update_goeip && cd /opt/update_geoip

Создаем файл и копируем туда текст скрипта.

nano update.py

Сохраняем и закрываем.

Теперь добавляем этот скрипт в Cron(выполнение одни раз в неделю вполне хватит)

crontab -e

В открывшемся редакторе вставляем

35 5 * * 0 /usr/bin/python /opt/update_geoip/update.py

Время выполнения Вы можете менять как Вам будет удобно, в примере, скрипт отрабатывает каждое воскресенье в 3.35 ночи.

Успехов.