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:
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.
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.
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:
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.
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.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. gema $baris | awk '{print $1}' >> $WEB_DIR/report.html. gema " | " >> $WEB_DIR/report.html. gema $baris | awk '{print $2}' >> $WEB_DIR/report.html. gema " | " >> $WEB_DIR/report.html. gema $baris | awk '{print $5}' >> $WEB_DIR/report.html. gema " |