Я пишу mail.py (используя webpy), чтобы отправить мне ip-адрес каждой машины.преуспеть в скрипте, но сбой в rc.local
#!/usr/bin/env python
#coding=utf-8
import web
def send_mail(send_to, subject, body, cc=None, bcc=None):
try:
web.config.smtp_server = 'xxxxx'
web.config.smtp_port = 25
web.config.smtp_username = 'xxx'
web.config.smtp_password = 'xxx'
web.config.smtp_starttls = True
send_from = 'xxx'
web.sendmail(send_from, send_to, subject, body, cc=cc, bcc=bcc)
return 1 #pass
except Exception, e:
print e
return -1 #fail
if __name__=='__main__':
print "in mail.py"
f=file('/home/spark/Desktop/ip.log')
f1=f.read()
f.close()
send_to = ['xxxx']
subject = 'xxxx'
body = 'ip:',f1
send_mail(send_to, subject, body)
rc.local
bash deploy.sh &
exit 0
deploy.sh
#!/usr/bin/env
cd /home/spark/Desktop
python mail.py >>deploy.log
echo "-----------------------------------------------------------"
Я могу получать электронную почту, если я «питона mail.py'.But, когда я положил его в rc.local , Я не могу получить письмо, сообщение в выводах deploy.log [Errno -2] Имя или услуга неизвестны.
Я озадачен этим выходом.
Я изменил web.config.smtp_server с IP-адресом вместо имени domain_name, и он сработал. Я думаю, что ошибка связана с тем, что некоторые конфигурации и службы недоступны в процессе rc.local. Полезные ссылки: [sendmail] (https://wiki.list.org/DOC/Mail%20delivery%20fails%20with%20%22 (-2,% 20'Name% 20or% 20service% 20not% 20known ')% 22 ,% 20aka% 20I% 20am% 20not% 20receiving% 20any% 20notification% 20messages% 20from% 20Mail) [неизвестный сервис] (http://stackoverflow.com/questions/23777121/why-am-i-getting-socket- gaierror-errno-2-from-python-httplib) – makeapp
[трюки для отладки rc.local] (http://stackoverflow.com/questions/7783341/run-script-with-rc-local-script-works-but- не-на-ботинок) – makeapp