Sistem yöneticisi görevi Linux’ta çeşitli şekillerde otomatikleştirilebilir.
İnsan çabalarını büyük ölçüde azaltır ve diğer üretken görevler için kullanılabilecek makul zamandan tasarruf sağlar.
Shell betiği normal işleri otomatikleştirmenin yöntemlerinden biridir.
Bir senaryoda, raporlama amacıyla bazı verileri doldurmak için haftalık bir iş veya EOD işi çalıştırmak istiyorsunuz.
Bunu yapmak için işe başlamadan önce sistemdeki uygulamaya halihazırda erişen tüm ssh oturumlarını sonlandırmanız gerekir.
Aşağıdaki kabuk betiği, kullanıcı oturumlarının tty değerini alarak tüm kullanıcıların aktif oturumlarını kaldıracak ve pkill komutunu kullanarak onları öldürecektir.
$ sudo vi /opt/script/kill-user-sessions.sh #!/bin/bash usession=$(w | awk '{if (NR!=1) {print $2 }}' | tail -n +2) for i in $usession do pkill -9 -t $i done
“Kill-user-sessions.sh” dosyasına yürütülebilir bir izin ayarlayın.
$ sudo chmod +x /opt/script/kill-user-sessions.sh
Son olarak, her gün sabah saat 3’te çalışan bu betiği otomatikleştirmek için bir cronjob ekleyin.
$ sudo crontab -e 0 3 * * * /bin/bash /opt/script/kill-user-sessions.sh
Yukarıdaki betiği ara sıra çalıştırmak istiyorsanız aşağıdaki formatı kullanın.
$ sudo for i in $(w | awk '{if (NR!=1) {print $2 }}' | tail -n +2); do pkill -9 -t $i; done
Sistemdeki birkaç kullanıcı nasıl hariç tutulur?
Sistemdeki kullanıcılardan herhangi birini hariç tutmak istiyorsanız aşağıdaki komut dosyasını kullanın.
Bu örnekte hariç tutma işleminde “root” ve “ansible” kullanıcılar referans olarak alınmıştır.
$ sudo vi /opt/script/kill-user-sessions-1.sh #!/bin/bash usession=$(w | grep -v "root|ansible" | awk '{if (NR!=1) {print $2 }}' | tail -n +2) for i in $usession do pkill -9 -t $i done
“Kil-user-sessions-1.sh” dosyasına yürütülebilir bir izin ayarlayın.
$ sudo chmod +x /opt/script/kill-user-sessions-1.sh
Son olarak, her gün sabah saat 3’te çalışan bu betiği otomatikleştirmek için bir cronjob ekleyin.
$ sudo crontab -e 0 3 * * * /bin/bash /opt/script/kill-user-sessions-1.sh
Yukarıdaki betiği ara sıra çalıştırmak istiyorsanız aşağıdaki formatı kullanın.
$ sudo for i in $(w | grep -v "root" | awk '{if (NR!=1) {print $2 }}' | tail -n +2); do pkill -9 -t $i; done
Yazının orijinalini buradan okuyabilirsiniz.

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.