使用crontab定时执行
#!/usr/bin/env python # coding=utf-8 from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequest from json import load from urllib2 import urlopen from datetime import datetime import os os.chdir(os.path.dirname(os.path.abspath(__file__))) accessKeyId = "<accessKeyId >" accessSecret = "<accessSecret >" domainName = "<domainName >" client = AcsClient(accessKeyId, accessSecret, 'cn-hangzhou') my_ip = load(urlopen('http://jsonip.com'))['ip'] def main(): try: f = open('./ip.txt') ip = f.read() except IOError as e: print e ip = '' if ip != my_ip: f = open('./ip.txt','w') f.write(my_ip) try: request1 = UpdateDomainRecordRequest() request1.set_accept_format('json') request1.set_RecordId("19666219383473152") request1.set_Type("A") request1.set_RR("ddns") request1.set_Value(my_ip) response1 = client.do_action_with_exception(request1) print "\033[1;32mModify Successful!\033[0m" except ServerException as e: print "\033[1;31m" + e.get_error_msg() + "\033[0m" else: print "\033[1;31mIP unchanged\033[0m" if __name__ == '__main__': print print datetime.now().strftime( '%Y-%m-%d %H:%M:%S') main()