だから、これは私のコードです:https://github.com/trisimix/serialcontrol/blob/master/serialcontrol.pyパスワードをプレーンテキストとして保存しないでください。
import subprocess
import os
import stat
dmi = subprocess.check_output('dmidecode', shell=True)
#print(variable)
#run program once as root then cron it as root
try :
file = open("/var/log/serialcontrol/dmidecode.txt", "r")
file.close()
except FileNotFoundError:
script = '/var/tmp/serialcontrol.bash'
with open(script, 'w') as file:
file.write("#!/bin/bash/\nif [ ! -d /var/log/serialcontrol/ ]\nthen\n\tmkdir /var/log/serialcontrol/\nfi");
#st = os.stat(script)
#os.chmod(script, st.st_mode | stat.S_IEXEC)
subprocess.call(["bash", script])
subprocess.call(["rm", script])
#with open('/var/log/serialcontrol/dmidecode.txt' , 'w') as file:
# file.write(dmi);
file = open("/var/log/serialcontrol/dmidecode.txt" , "w");
dmi = str(dmi)
dmi = dmi.replace('\\n', '\n')
dmi = dmi.replace('\\t', '\t')
file.write(dmi)
file.close()
script2 = '/var/log/serialcontrol/serialcontro1.bash'
#with open(script2, 'w') as file:
# file.write('#!/bin/bash\nrecipients="[email protected]"\nsubject="...Subject..."\necho -e "to: $recipients\nsubject: $subject\n"| (cat - &&uuencode /var/log/serialcontrol/dmidecode.txt) | ssmtp [email protected]')
import smtplib
sender = '[email protected]'
receivers = '[email protected]'
message = "\r\n".join([
"From: [email protected]",
"To: [email protected]",
"Subject: SerialControl",
"",
dmi
])
username = '[email protected]'
password = ''
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login(username,password)
server.sendmail(sender, receivers, message)
server.quit()
#subprocess.call(["bash", script2])
#this sub is supposed to /n with actual /n's
#subprocess.run(["sed -i 's/\\n/\n/g' /var/log/serialcontrol/dmidecode.txt"], shell=True)
#except FileNotFoundError:
#file = open('/var/tmp/serialcontrol.bash', 'w')
#file.write("#!/bin/bash/\nif [ ! -d /var/log/serialcontrol/]\nthen\n\tmkdir /var/log/serialcontrol/\nfi");
#file.close()
#st = os.stat("/var/tmp/serialcontrol.bash")
#os.chmod("/var/tmp/serialcontrol.bash", st.st_mode | stat.S_IEXEC)
#subprocess.call("/var/tmp/serialcontrol.bash")
私はそれは本当に、本当に、本当に、本当に、本当に、悪いことを知っているが、パスワードのセグメントに私はこのスクリプトをcronでは前に、自分のパスワードを入力する必要があり、パスワードが取得平文として保存されています、どのように修正?
キーリングは実行可能なオプションですか? – Marat
サーバーコードはあなたのコントロールから外れていますか?サーバーが認証できる暗号化されたパスワードを送信できませんか? –
** **参照:http://stackoverflow.com/questions/157938 – dreftymac