Cara Menghasilkan dan Mengirim Statistik Komputer Secara Otomatis
Sangat penting untuk memeriksa berbagai data log dan statistik di server Anda setiap hari, tetapi itu menjadi membosankan. Bukankah lebih baik menerima satu email dengan semua highlight setiap hari, jadi Anda bahkan tidak perlu masuk ke server untuk memeriksa masalah? Panduan ini akan menunjukkan kepada Anda cara mengkonfigurasi email otomatis di Linux dan Windows.
Kami akan secara khusus membahas hal ini untuk Ubuntu dan Windows 8.1, dengan Gmail digunakan sebagai server email tempat surat dikirim. Jika Anda memiliki versi lain Linux atau Windows, atau lebih suka menggunakan beberapa layanan email lain, instruksi di sini harus mudah disesuaikan.
Email Otomatis di Linux
Kita akan menggunakan dua paket berbeda untuk menyelesaikan ini, ssmtp dan mailutils, jadi instal keduanya dengan perintah berikut:
$ sudo apt-get install mailutils ssmtp
Setelah itu diinstal, kita perlu membuat beberapa perubahan pada file konfigurasi SSMTP:
$ sudo vi /etc/ssmtp/ssmtp.conf
Edit file dengan perubahan ini (aman untuk menghapus semua teks dalam file dan menyalin / menempelkan pengaturan ini, jika Anda mau):
# Alamat ini akan menerima email, jadi masukkan email Anda sendiri di sini jika Anda ingin menerimanya.
# Tentukan server email di sini (biarkan apa adanya jika Anda menggunakan Gmail).
mailhub = smtp.gmail.com: 587
# Nama domain dari mana surat akan berasal.
rewriteDomain = gmail.com
# Alamat email dari mana email-email ini berasal.
# Pengaturan SSL / TLS, diperlukan untuk Gmail dan sebagian besar server email lainnya.
UseTLS = Ya
UseSTARTTLS = Ya
# Nama pengguna dan kata sandi ke akun Gmail Anda.
AuthUser = nama pengguna
AuthPass = kata sandi
# Memungkinkan kemampuan untuk menentukan alamat dari yang berbeda dari yang di atas.
FromLineOverride = ya
Setelah selesai mengedit file, Anda ingin mengubah izin karena kata sandi Gmail Anda disimpan dalam plaintext.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
Selalu lebih aman untuk menjadikan root sebagai pemilik file, tetapi kemudian kita harus menggunakan perintah sudo dalam skrip kita dan itu akan meminta kita untuk kata sandi, sehingga mengalahkan tujuan mengotomatiskan seluruh proses ini.
Jika Anda menggunakan server bersama dan khawatir kata sandi Anda disimpan dalam plaintext dan dapat dibaca oleh root, buat akun Gmail sekali pakai atau gunakan server email yang tidak memerlukan jenis otentikasi apa pun..
Untuk memastikan semuanya dikonfigurasi dengan benar, mari kita coba email tes:
$ echo "Pengujian" | mail -s "Menguji pengaturan setup" [email protected]
"Pengujian" akan berada di badan email dan subjeknya adalah "Pengujian pengaturan email." Periksa email Anda untuk memastikan Anda menerimanya.
Menulis Naskah untuk Email
Sekarang kami dapat mengirim email dari baris perintah, mari kita menulis sebuah skrip yang akan mengirimi kami beberapa informasi dasar tentang sistem kami.
#! / bin / bash
# Periksa ruang hard drive
echo "Ruang hard drive:"> /home/geek/email.txt
df -h >> /home/geek/email.txt
# Sebutkan pengguna yang masuk
echo "Pengguna saat ini masuk:" >> /home/geek/email.txt
siapa >> /home/geek/email.txt
# Daftar proses yang sedang berjalan
echo "Menjalankan proses:" >> /home/geek/email.txt
ps -e >> /home/geek/email.txt
# Kirim email
cat /home/geek/email.txt | mail -s "Informasi server harian" [email protected]
# Hapus file yang kami buat
rm /home/geek/email.txt
Tentunya Anda bisa mendapatkan jauh lebih mendalam dengan skrip Anda dan bahkan membuat format sedikit lebih bagus, tetapi seperti inilah hasilnya di email kami:
Sekarang skrip ditulis dan diuji, kita dapat menggunakan cron untuk secara otomatis menjalankannya pada waktu yang sama setiap hari. Dalam contoh ini, kami akan mengonfigurasi email untuk dikirim pada jam 2:00 pagi setiap pagi, sehingga kami dapat melihat data nanti hari itu.
$ crontab -e
Untuk email jam 02:00, tambahkan:
0 2 * * * /home/geek/script.sh
Kami telah menulis seluruh artikel pada file crontab jika Anda memerlukan bantuan lebih lanjut dengan bagian ini.
Email Otomatis di Windows
Mengirim email di baris perintah dimungkinkan melalui PowerShell, tetapi kami menemukan bahwa menerapkan fungsi ini jauh lebih mudah dengan aplikasi pihak ketiga, terutama saat menggunakan Gmail. SendEmail adalah program gratis yang tersedia untuk Windows yang menjadikan integrasi dengan Windows Task Scheduler dan Gmail menjadi mudah. Klik tautan di atas untuk mengunduh salinan terbaru, dan pastikan Anda mengambil versi yang didukung TLS.
Setelah Anda mengunduh SendEmail, ekstrak file zip dan letakkan konten di suatu tempat yang dapat Anda simpan selama Anda berencana untuk mengirim email otomatis. Dalam contoh ini, kita hanya akan menyimpan program di C: \ SendEmail
Mari kita coba SendEmail untuk mengetahui cara kerjanya. Buka prompt perintah dengan mengetik cmd ke menu Start atau Run (Ctrl + R).
Dengan prompt perintah terbuka, gunakan perintah direktori perubahan untuk menavigasi ke tempat Anda menyimpan file SendEmail.
cd C: \ SendEmail
Sekarang kita dapat mencoba mengirim email percobaan dengan perintah berikut:
sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com 5-108 -xu username -xp password -u "Uji subjek email" -m "Ini adalah email pengujian."
Jelas, ganti "nama pengguna" dan "kata sandi" dengan kredensial akun Anda sebelum menjalankan perintah.
Inilah yang sebenarnya dilakukan perintah di atas:
mengirim email
menjalankan program.
-f
- dari alamat
-t
- ke alamat
-s
- Server SMTP
-xu
- username akun
-xp
- kata sandi akun
-kamu
- subjek email
-m
- teks isi email
Periksa kotak masuk Anda untuk memastikan Anda menerima email pengujian, dan kemudian kami dapat melanjutkan untuk menulis skrip yang akan mengirimkan informasi server kepada kami.
Menulis Naskah untuk Email
Untuk mendapatkan hasil maksimal dari skrip kami, kami akan menulisnya untuk PowerShell. Buka Windows PowerShell ISE dengan mengetik powershell_ise.exe ke dalam Run prompt (Ctrl + R).
Di sisi kanan jendela PowerShell ISE, Anda bisa mendaftar setiap perintah yang dapat dieksekusi PowerShell. Ini akan memberi Anda awal yang baik dalam menghasilkan jenis informasi yang Anda perlu laporkan. Dalam skrip Anda, Anda juga dapat memanggil program pihak ketiga untuk menampilkan informasi juga (mis. SendEmail adalah aplikasi pihak ketiga tetapi PowerShell dan cmd dapat menggunakannya untuk menyelesaikan tugas yang biasanya tidak dapat dilakukan).
Untuk skrip contoh kami, kami akan memeriksa penggunaan disk saat ini dari drive C, menunjukkan proses yang sedang berjalan, dan menampilkan semua file yang saat ini sedang dibagikan melalui jaringan.
# Periksa ruang hard drive
echo "C: Drive Usage:"> C: \ SendEmail \ info.txt
Dapatkan-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" | Select-Object Size, FreeSpace >> C: \ SendEmail \ info.txt
# Daftar proses yang sedang berjalan
echo "Menjalankan proses:" >> C: \ SendEmail \ info.txt
dapatkan proses >> C: \ SendEmail \ info.txt
# Cantumkan file / folder yang saat ini dibagikan
echo "Saham SMB:" >> C: \ SendEmail \ info.txt
get-smbshare >> C: \ SendEmail \ info.txt
# Kirim email
ketik C: \ SendEmail \ info.txt | C: \ SendEmail \ sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com 5-108 -xu username -xp password -u "Info server harian"
# Hapus file yang kami buat
rm C: \ SendEmail \ info.txt
Dalam skrip ini, berbagai informasi dikeluarkan ke C: \ SendEmail \ info.txt, dan kemudian teks dalam dokumen tersebut diemailkan kepada kami sebelum dihapus. Simpan skrip Anda dengan ekstensi file ps1 (file PowerShell).
Dengan skrip Anda selesai, jalankan tes cepat dari Run prompt untuk memastikan itu berfungsi dengan baik.
Cukup gunakan PowerShell
perintah dengan a -mengajukan
argumen dan tentukan path ke skrip Anda.
powershell -file "c: \ SendEmail \ daily-email.ps1"
Periksa kotak masuk Anda untuk memastikan Anda menerima email - jika tidak, periksa skrip Anda untuk kesalahan sintaks. Seperti inilah bentuk email yang dihasilkan dari contoh skrip kami:
Anda dapat bermain-main dengan pemformatan (seperti menggemakan garis kosong di antara teks) untuk membuatnya tampil lebih bagus di perangkat Anda, atau lebih baik lagi Anda dapat menggunakan program pihak ketiga yang akan menampilkan info yang diperlukan dalam format yang lebih mudah dibaca daripada Windows ( proses scripting akan tetap sama).
Setelah Anda menyelesaikan kerutan dalam skrip, Anda dapat menggunakan Penjadwal Tugas Windows untuk mengotomatiskannya. Buka Penjadwal Tugas Windows melalui menu Mulai.
Dengan Penjadwal Tugas terbuka, pilih Aksi> Buat Tugas Dasar.
Beri nama tugas ini seperti "Naskah email harian" dan klik next. Pada layar berikutnya, pilih frekuensi yang Anda inginkan untuk menjalankan skrip email Anda, mungkin setiap hari. Kemudian, pilih waktu Anda ingin skrip dijalankan, dan tekan berikutnya.
Sekarang Anda harus berada di bagian "Action" dari wizard, pilih "Start a Program" dan masukkan teks yang sama dengan yang kita masukkan ke dalam prompt Run sebelumnya untuk menguji skrip kami..
Tekan berikutnya dan kemudian tekan Ya di jendela ini:
Klik Selesai pada menu terakhir, dan Anda selesai menjadwalkan email otomatis Anda.