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 sorotan setiap hari, sehingga Anda bahkan tidak perlu masuk ke server untuk memeriksa masalah? Panduan ini akan menunjukkan kepada Anda cara mengonfigurasi email otomatis di Linux dan Windows.
Kami akan secara khusus membahas ini untuk Ubuntu dan Windows 8.1, dengan Gmail yang digunakan sebagai server email yang dikirim dari email. Jika Anda memiliki versi Linux atau Windows lain, atau lebih suka menggunakan beberapa layanan email lainnya, petunjuk di sini harus mudah disesuaikan.
Kita akan menggunakan dua paket berbeda untuk mencapai ini, ssmtp dan mailutils, jadi instal keduanya dengan perintah berikut:
$ sudo apt-get install ssmtp mailutils
Setelah itu dipasang, 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 / menempel 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 asal surel.
rewriteDomain = gmail.com
# Alamat email yang harus berasal dari email ini.
# Pengaturan SSL / TLS, diperlukan untuk Gmail dan sebagian besar server email lainnya.
UseTLS = Ya
GunakanSTARTTLS = Ya
# Nama pengguna dan kata sandi untuk akun Gmail Anda.
AuthUser = nama pengguna
AuthPass = kata sandi
# Mengizinkan kemampuan untuk menentukan alamat dari yang berbeda dari yang di atas.
FromLineOverride = yes
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
Itu selalu lebih aman untuk membuat root pemilik file, tetapi kemudian kita harus menggunakan perintah sudo dalam skrip kita dan itu akan meminta kita untuk kata sandi, dengan demikian mengalahkan tujuan mengotomatisasi seluruh proses ini.
Jika Anda menggunakan server bersama dan khawatir tentang kata sandi Anda disimpan dalam plaintext dan dapat dibaca oleh root, buat akun Gmail kosong atau gunakan server email yang tidak memerlukan jenis otentikasi apa pun di tempat pertama.
Untuk memastikan semuanya sudah dikonfigurasi dengan benar, mari coba email percobaan:
$ echo "Testing" | mail -s "Testing mail setup" [email protected]
"Pengujian" akan berada di badan email dan subjek akan "Menguji penyiapan email." Periksa email Anda untuk memastikan Anda menerimanya.
Sekarang kami dapat mengirim email dari baris perintah, mari menulis skrip yang akan mengirimkan beberapa informasi dasar tentang sistem kami.
#! / bin / bash
# Periksa ruang harddisk
echo "Hard drive space:"> /home/geek/email.txt
df -h >> /home/geek/email.txt
# Daftar pengguna yang masuk
echo "Pengguna saat ini masuk:" >> /home/geek/email.txt
siapa >> /home/geek/email.txt
# Daftar proses yang sedang berjalan saat ini
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 lebih banyak dengan skrip Anda dan bahkan membuat formatnya sedikit lebih bagus, tapi inilah yang tampak seperti di email kami:
Sekarang skrip ditulis dan diuji, kita dapat menggunakan cron untuk mengeksekusinya secara otomatis pada waktu yang sama setiap hari. Dalam contoh ini, kami akan mengonfigurasi email untuk dikirim pada pukul 2:00 pagi setiap pagi, sehingga kami dapat memeriksa data di kemudian hari.
$ crontab -e
Untuk email 2:00 pagi, tambahkan:
0 2 * * * /home/geek/script.sh
Kami telah menulis seluruh artikel tentang file crontab jika Anda memerlukan bantuan lebih lanjut dengan bagian ini.
Mengirim email pada baris perintah dimungkinkan melalui PowerShell, tetapi kami telah menemukan bahwa menerapkan fungsi ini jauh lebih mudah dengan aplikasi pihak ketiga, terutama ketika menggunakan Gmail. SendEmail adalah program gratis yang tersedia untuk Windows yang membuat 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 uji SendEmail untuk mengetahui cara kerjanya. Buka prompt perintah dengan mengetikkan cmd ke menu Mulai atau Jalankan (Ctrl + R).
Dengan command prompt terbuka, gunakan perintah perubahan direktori 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:587 -xu username -xp password -u "Uji subjek email" -m "Ini adalah email percobaan."
Tentunya, ganti "nama pengguna" dan "kata sandi" dengan kredensial akun Anda sebelum menjalankan perintah.
Inilah yang perintah di atas sebenarnya:
mengirim email
menjalankan program.
-f
- dari alamat
-t
- untuk alamat
-s
- Server SMTP
-xu
- username akun
-xp
- kata sandi akun
-u
- Subjek email
-m
- Teks isi email
Periksa kotak masuk Anda untuk memastikan Anda menerima email tes, dan kemudian kita dapat melanjutkan dengan menulis skrip yang akan mengirimkan informasi server kepada kami.
Untuk mendapatkan hasil maksimal dari skrip kami, kami akan menuliskannya untuk PowerShell. Buka Windows PowerShell ISE dengan mengetik powershell_ise.exe ke prompt Run (Ctrl + R).
Di sisi kanan jendela PowerShell ISE, Anda dapat membuat daftar setiap perintah yang PowerShell mampu jalankan. Ini akan memberi Anda awal yang baik dalam menghasilkan jenis-jenis informasi yang perlu Anda laporkan. Di skrip Anda, Anda juga dapat memanggil program pihak ketiga untuk menghasilkan informasi juga (mis. SendEmail adalah aplikasi pihak ketiga tetapi PowerShell dan cmd dapat menggunakannya untuk menyelesaikan tugas yang biasanya tidak dapat mereka lakukan).
Untuk skrip contoh kami, kami akan memeriksa penggunaan cakram saat ini dari drive C, menunjukkan proses yang sedang berjalan, dan menampilkan semua file yang saat ini dibagikan di seluruh jaringan.
# Periksa ruang harddisk
echo "C: Drive Usage:"> C: \ SendEmail \ info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" | Pilih Ukuran Objek, FreeSpace >> C: \ SendEmail \ info.txt
# Daftar proses yang sedang berjalan saat ini
echo "Menjalankan proses:" >> C: \ KirimEmail \ info.txt
get-process >> C: \ SendEmail \ info.txt
# Daftar file / folder yang sedang dibagikan
echo "SMB shares:" >> 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:587 -xu nama pengguna -xp kata sandi -u "Info server harian"
# Hapus file yang kita buat
rm C: \ SendEmail \ info.txt
Dalam skrip ini, berbagai informasi dikeluarkan ke C: \ SendEmail \ info.txt, dan kemudian teks dalam dokumen itu diemail kepada kami sebelum dihapus. Simpan skrip Anda dengan ekstensi file ps1 (file PowerShell).
Dengan skrip Anda selesai, jalankan tes cepat dari perintah Jalankan untuk memastikannya berfungsi dengan benar.
Cukup gunakan PowerShell
perintah dengan -mengajukan
argumen dan tentukan jalur 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. Inilah yang dihasilkan email dari skrip contoh kami seperti:
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 dibutuhkan dalam format yang lebih mudah dibaca daripada yang dilakukan Windows ( proses scripting akan tetap sama).
Setelah Anda menyelesaikan kekusutan dalam skrip Anda, Anda dapat menggunakan Windows Task Scheduler untuk mengotomatiskannya. Buka Windows Task Scheduler melalui menu Start.
Dengan Penjadwal Tugas terbuka, pilih Tindakan> Buat Tugas Dasar.
Beri nama tugas ini sesuatu seperti "Skrip email harian" dan klik berikutnya. Di layar berikutnya, pilih frekuensi yang Anda inginkan untuk menjalankan skrip email Anda, mungkin setiap hari. Kemudian, pilih waktu yang Anda inginkan untuk menjalankan skrip, dan tekan berikutnya.
Sekarang Anda harus berada di bagian "Action" dari wizard, pilih "Start a Program" dan masukkan teks yang sama yang kami masukkan ke dalam perintah Jalankan sebelumnya untuk menguji skrip kami.
Tekan next lalu klik Yes pada jendela ini:
Klik Selesai pada menu terakhir, dan Anda sudah selesai menjadwalkan email otomatis Anda.