按量付费服务器忘记停机
之前有一台阿里云按量付费的机器,有次实盘交易完之后,忘记关机了(停机不收费),导致白白被多扣了几天的钱,然后写了个脚本去定时探测服务器当前是开机状态,如果是开机状态的话,给自己发邮件提醒一下。原理很简单,就是ping一下自己的服务器ip,能ping通就是开机状态,Python3写的,配置个定时任务每小时执行一次,感兴趣的可以参考下。
# 提前安装ping3包 pip3 install ping3
from ping3 import ping, verbose_ping
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import time
#发邮件给自己
def send_mail(qq_email, qq_email_pwd, subject, content):
sender = qq_email
receivers = [qq_email] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
message = MIMEText(content, 'HTML', 'utf-8')
message['From'] = Header(qq_email.split('@')[0]+" <"+qq_email+">")
message['To'] = Header("自己", 'utf-8')
subject = subject+'【'+time.strftime('%Y-%m-%d',time.localtime(time.time()))+'】'
message['Subject'] = Header(subject, 'utf-8')
smtpObj = smtplib.SMTP_SSL('smtp.qq.com')
smtpObj.login(qq_email, qq_email_pwd)
smtpObj.sendmail(sender, receivers, message.as_string())
if __name__ == '__main__':
#服务器IP
server_ip = 'xxx.xxx.xxx.xxx'
#QQ邮箱地址
qq_email = 'xxx@qq.com'
#QQ邮箱密码
qq_email_pwd = 'xxx'
# 简单用法 ping地址即可,超时会返回None 否则返回耗时,单位默认是秒
second = ping(server_ip)
print('it took {} second'.format(second))
if(second is not None):
send_mail(qq_email, qq_email_pwd, "windows服务启动中...", "注意...")
我是用另外一台服务器去探测的"按量付费"服务器是否开启,也可以直接把server_ip改成 www.baidu.com ,然后当前按量付费服务器配置一个定时任务,如果能发出邮件,说明当前处在开机状态。
本站合作开户:A类大型期货公司,客户经理直开,加1分,有交返。联系微信: ITF-0T ,备注:开户。 支持企业开户,企业开户限时奖励中...