Чтобы запустить скрипт, вам нужно настроить задание cron: Как настроить cronjob?
Теперь, внутри вашего скрипта, вам нужно будет сделать что-то вроде этого:
#!/bin/bash
#script that simply saves the output of df -h to an output file
#which is sent as an attachment to an e-mail
#a) save the output of the command:
temp_file=$(mktemp)
df -h > $temp_file 2> /dev/null
/root/email.py recipient@gmail.com "Title here" "Body here. The current date and time is $(date)" "$temp_file"
sleep 3
rm -rf $temp_file
Как вы можете видеть, я вызываю скрипт python из вашего корневого пути (не читаемый, но никто другой, кроме самого root), который принимает следующие аргументы:
«email-адрес получателя», «email-адрес электронной почты», «вложение» по электронной почте »
Этот скрипт python таков:
#!/usr/bin/python
import os, re
import sys
import smtplib
from email import encoders
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.MIMEText import MIMEText
SMTP_SERVER = 'smtp.gmail.com'
SMTP_PORT = 587
sender = 'youremailhere@gmail.com'
password = "yourpasswordhere"
recipient = sys.argv[1]
subject = ''
message = sys.argv[3]
def main():
msg = MIMEMultipart()
msg['Subject'] = sys.argv[2]
msg['To'] = recipient
msg['From'] = sender
part = MIMEText('text', "plain")
part.set_payload(message)
msg.attach(part)
session = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
session.ehlo()
session.starttls()
session.ehlo
session.login(sender, password)
fp = open(sys.argv[4], 'rb')
msgq = MIMEBase('audio', 'audio')
msgq.set_payload(fp.read())
fp.close()
# Encode the payload using Base64
filename=sys.argv[4]
msgq.add_header('Content-Disposition', 'attachment', filename=filename)
msg.attach(msgq)
# Now send or store the message
qwertyuiop = msg.as_string()
session.sendmail(sender, recipient, qwertyuiop)
session.quit()
os.system('notify-send "Your disk space related email has been sent."')
if __name__ == '__main__':
main()
Конечно, вам понадобится чтобы предоставить ему электронную почту и пароль gmail в верхней части скрипта (переменные sender и password). Если вы установите пакет libnotify-bin, то, если письмо было успешно отправлено, вы будете уведомлены с уведомлением на рабочем столе.
Итак, подведя итоги, вам нужно будет настроить работу cron с указанным выше скрипт gmail . Этот сценарий bash сохранит вывод df -h во временном файле, который будет отправлен через скрипт python на адрес получателя по вашему выбору (насколько я помню, почтовый адрес отправителя должен быть gmail).
PS: Вышеупомянутое решение покажет свободное и полное дисковое пространство только ваших смонтированных файловых систем. Если это проблема, сообщите мне, чтобы продлить мой ответ о том, как автоматически смонтировать все доступные файловые системы, а затем запустить df -h.
Ubuntu должен быть установлен на вашем компьютере, и он также будет запущен, но производительность не будет хорошей. Почему вы хотите установить Ubuntu 13.04? Чтобы продолжить получать обновления программного обеспечения, вам придется переустановить или обновить операционную систему в конце девятимесячного срока поддержки. Долгий срок поддержки, такой как Ubuntu 12.04, который имеет пятилетний срок поддержки, или Xubuntu 12.04, который имеет трехлетний срок поддержки, будет лучше. Для лучшей производительности выберите Xubuntu 12.04.