Menggunakan Shell Scripting untuk Mengotomatiskan Tugas Pemeliharaan Sistem Linux
Beberapa waktu lalu saya membaca bahwa salah satu ciri khas seorang administrator/engineer sistem yang efektif adalah kemalasan. Tampaknya agak kontradiktif pada awalnya tetapi penulis kemudian melanjutkan untuk menjelaskan alasannya:
Seri RHCE: Mengotomatiskan Tugas Pemeliharaan Sistem Linux – Bagian 4
jika sysadmin menghabiskan sebagian besar waktunya untuk memecahkan masalah dan melakukan tugas yang berulang, Anda dapat curiga bahwa dia tidak melakukan sesuatu dengan benar. Dengan kata lain, seorang administrator sistem / insinyur yang efektif harus mengembangkan rencana untuk melakukan tugas berulang dengan tindakan sesedikit mungkin di pihaknya, dan harus meramalkan masalah dengan menggunakan,
misalnya, alat yang diulas di Bagian 3 – Pantau Laporan Aktivitas Sistem Menggunakan Perangkat Linux dari seri ini. Jadi, meskipun dia tampaknya tidak melakukan banyak hal, itu karena sebagian besar tanggung jawabnya telah telah diurus dengan bantuan skrip shell, yang akan kita bicarakan di sini tutorial.
Apa itu skrip shell?
Singkatnya, skrip shell tidak lebih dan tidak kurang dari sebuah program yang dijalankan langkah demi langkah oleh shell, yang merupakan program lain yang menyediakan lapisan antarmuka antara kernel Linux dan ujungnya pengguna.
Secara default, shell yang digunakan untuk akun pengguna di RHEL 7 adalah bash (/bin/bash). Jika Anda menginginkan deskripsi terperinci dan beberapa latar belakang sejarah, Anda dapat merujuk ke artikel Wikipedia ini.
Untuk mengetahui lebih lanjut tentang serangkaian besar fitur yang disediakan oleh shell ini, Anda mungkin ingin memeriksanya halaman manual, yang diunduh dalam format PDF di (Perintah Bash). Selain itu, diasumsikan bahwa Anda sudah familiar dengan perintah Linux (jika tidak, saya sangat menyarankan Anda untuk pergi melalui Panduan dari Pemula untuk SysAdmin artikel di Tecmint.com sebelum melanjutkan). Sekarang mari kita mulai.
Menulis skrip untuk menampilkan informasi sistem
Untuk kenyamanan kita, mari buat direktori untuk menyimpan skrip shell kita:
# skrip mkdir. #skrip cd.
Dan buka file teks baru bernama system_info.sh dengan editor teks pilihan Anda. Kita akan mulai dengan memasukkan beberapa komentar di bagian atas dan beberapa perintah setelahnya:
#!/bin/bash # Contoh skrip yang ditulis untuk Bagian 4 dari seri RHCE. # Skrip ini akan mengembalikan kumpulan informasi sistem berikut: # -Informasi nama host: echo -e "\e[31;43m**** INFORMASI NAMA HOSTNAME*****\e[0m" namahostectl. gema "" # -Penggunaan ruang disk sistem file: echo -e "\e[31;43m****PENGGUNAAN RUANG DISK SISTEM FILE*****\e[0m" df -h. gema "" # -Memori bebas dan bekas dalam sistem: echo -e "\e[31;43m *****MEMORI GRATIS DAN DIGUNAKAN*****\e[0m" Gratis. gema "" # -Waktu aktif dan beban sistem: echo -e "\e[31;43m****SISTEM UPTIME DAN LOAD*****\e[0m" waktu aktif. gema "" # -Pengguna yang masuk: echo -e "\e[31;43m****PENGGUNA YANG SAAT LOGIN*****\e[0m" WHO. gema "" # -Proses 5 teratas sejauh menyangkut penggunaan memori. echo -e "\e[31;43m****5 PROSES YANG MENGGUNAKAN MEMORI TERATAS*****\e[0m" ps -eo %mem,%cpu, comm --sort=-%mem | kepala -n 6. gema "" echo -e "\e[1;32mSelesai.\e[0m"
Selanjutnya, berikan izin eksekusi skrip:
# chmod +x system_info.sh.
dan jalankan:
./system_info.sh.
Perhatikan bahwa tajuk setiap bagian ditampilkan dalam warna untuk visualisasi yang lebih baik:
Skrip Shell Pemantauan Server
Fungsionalitas itu disediakan oleh perintah ini:
echo -e "\e[WARNA1; WARNA2m\e[0m"
Di mana WARNA1 dan WARNA2 adalah warna latar depan dan latar belakang, masing-masing (info lebih lanjut dan opsi dijelaskan dalam entri ini dari Wiki Linux Arch) dan adalah string yang ingin Anda tampilkan dalam warna.
Mengotomatiskan Tugas
Tugas yang mungkin Anda perlukan untuk mengotomatisasi dapat bervariasi dari kasus ke kasus. Dengan demikian, kami tidak mungkin mencakup semua skenario yang mungkin dalam satu artikel, tetapi kami akan menyajikan tiga tugas klasik yang dapat diotomatisasi menggunakan skrip shell:
1) perbarui basis data file lokal, 2) temukan (dan sebagai alternatif hapus) file dengan 777 izin, dan 3) waspada ketika penggunaan sistem file melampaui batas yang ditentukan.
Mari kita buat file bernama auto_tasks.sh di direktori skrip kami dengan konten berikut:
#!/bin/bash # Contoh skrip untuk mengotomatisasi tugas: # -Perbarui basis data file lokal: echo -e "\e[4;32mMEMPERBARUI DATABASE FILE LOKAL\e[0m" diperbaruib. jika [ $? == 0 ]; kemudian echo "Database file lokal telah diperbarui dengan benar." else echo "Database file lokal tidak diperbarui dengan benar." fi echo "" # -Menemukan dan / atau menghapus file dengan izin 777. echo -e "\e[4;32mMENCARI FILE DENGAN 777 IZIN\e[0m" # Aktifkan salah satu opsi (komentari baris lain), tetapi tidak keduanya. # Opsi 1: Hapus file tanpa meminta konfirmasi. Diasumsikan versi GNU dari find. #find -type f -perm 0777 -delete. # Opsi 2: Minta konfirmasi sebelum menghapus file. Lebih portabel di seluruh sistem. temukan -type f -perm 0777 -exec rm -i {} +; gema "" # -Peringatan ketika penggunaan sistem file melampaui batas yang ditentukan echo -e "\e[4;32mMEMERIKSA PENGGUNAAN SISTEM FILE\e[0m" ATAS = 30. saat membaca baris; do # Variabel ini menyimpan jalur sistem file sebagai string FILESYSTEM=$(echo $line | awk '{print $1}') # Ini variabel menyimpan persentase penggunaan (XX%) PERCENTAGE=$(echo $line | awk '{print $5}') # Gunakan persentase tanpa % tanda. USAGE=${PERCENTAGE%?} if [ $USAGE -gt $THRESHOLD ]; lalu echo "Ruang yang tersisa di $FILESYSTEM sangat rendah. Digunakan: $PERCENTAGE" fi. selesai <
Harap dicatat bahwa ada spasi di antara keduanya < tanda di baris terakhir skrip.
Skrip Shell untuk Menemukan 777 Izin
Menggunakan Cron
Untuk mengambil efisiensi satu langkah lebih jauh, Anda tidak akan ingin duduk di depan komputer Anda dan menjalankan skrip tersebut secara manual. Sebaliknya, Anda akan menggunakan cron untuk menjadwalkan tugas tersebut agar berjalan secara berkala dan mengirimkan hasilnya ke daftar penerima yang telah ditentukan sebelumnya melalui email atau menyimpannya ke file yang dapat dilihat menggunakan browser web.
Skrip berikut (filesystem_usage.sh) akan menjalankan yang terkenal df -h perintah, format output ke dalam tabel HTML dan simpan di report.html mengajukan:
#!/bin/bash. # Contoh skrip untuk mendemonstrasikan pembuatan laporan HTML menggunakan skrip shell. # Direktori web. WEB_DIR=/var/www/html. # Sedikit CSS dan tata letak tabel untuk membuat laporan terlihat sedikit lebih bagus. gema "" > $WEB_DIR/report.html. # Lihat nama host dan sisipkan di bagian atas badan html. HOST=$(nama host) echo "Penggunaan sistem file untuk host$HOST
Terakhir diperbarui: $(tanggal)
Berkas sistem
Ukuran
Menggunakan %
" >> $WEB_DIR/report.html. # Baca output dari df -h baris demi baris. saat membaca baris; melakukan. gema "
Di kami RHEL 7 pelayan (192.168.0.18), tampilannya sebagai berikut:
Laporan Pemantauan Server
Anda dapat menambahkan ke laporan itu sebanyak mungkin informasi yang Anda inginkan. Untuk menjalankan skrip setiap hari di 13:30, tambahkan entri crontab berikut:
30 13 * * * /root/scripts/filesystem_usage.sh.
Ringkasan
Anda kemungkinan besar akan memikirkan beberapa tugas lain yang Anda inginkan atau perlukan untuk diotomatisasi; seperti yang Anda lihat, menggunakan skrip shell akan sangat menyederhanakan upaya ini. Jangan ragu untuk memberi tahu kami jika Anda merasa artikel ini bermanfaat dan jangan ragu untuk menambahkan ide atau komentar Anda sendiri melalui formulir di bawah ini.