Как я могу заставить NetworkManager вызывать ddclient автоматически

Как я могу заставить ddclient обновлять мой адрес dyndns всякий раз, когда NetworkManager устанавливает или прерывает соединение?

2
задан 26 October 2012 в 20:32

1 ответ

NetworkManager автоматически вызывает сценарии, помещенные в /etc/NetworkManager/dispatcher.d, с некоторыми интересными переменными среды. Это документировано в некоторой степени в man NetworkManager, но там не все переменные среды описаны. Я использую скрипт, подобный приведенному ниже, потому что я предпочитаю использовать IP-адрес VPN-соединения на dyndns. В сценарии также используется последний из нескольких перечисленных адресов, в надежде, что он будет самым актуальным, самым важным.

#!/usr/bin/env python

import sys
import os
import subprocess

env = os.environ
n = int(env['IP4_NUM_ADDRESSES'])
nvpn = int(env.get('VPN_IP4_NUM_ADDRESSES',0))

if nvpn>0:
    ip = env['VPN_IP4_ADDRESS_'+str(nvpn-1)].split('/')[0]
else:
    ip = env['IP4_ADDRESS_'+str(n-1)].split('/')[0]

ret = subprocess.call(['/usr/sbin/ddclient', '-daemon=0', '-syslog', '-use=ip', '-ip='+ip])
sys.exit(ret)
0
ответ дан 26 October 2012 в 20:32

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

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