RHCSA Serisi: Yum Paket Yönetimi, Cron ile Görevleri Otomatikleştirme ve Sistem Günlüklerini İzleme - Bölüm 10


Bu makalede Red Hat Enterprise Linux 7'de paketlerin nasıl kurulacağını, güncelleneceğini ve kaldırılacağını inceleyeceğiz. Ayrıca cron kullanarak görevlerin nasıl otomatikleştirileceğini de ele alacağız ve bu kılavuzu, tüm bunların neden her sistem yöneticisi için gerekli beceriler olduğunu size öğretmeye odaklanarak sistem günlük dosyalarının nasıl bulunacağını ve yorumlanacağını açıklayarak bitireceğiz.

Paketleri Yum Aracılığıyla Yönetme

Bir paketi, henüz kurulmamış olan tüm bağımlılıklarıyla birlikte kurmak için şunları kullanacaksınız:


yum -y install package_name(s)

Burada paket_adı(ları) en az bir gerçek paket adını temsil eder.

Örneğin, httpd ve mlocate'i yüklemek için (bu sırayla) yazın.


yum -y install httpd mlocate

Not: Yukarıdaki örnekteki y harfi, istenen programların fiili indirilmesi ve kurulumu gerçekleştirilmeden önce yum'un sunduğu onay istemlerini atlar. İsterseniz dışarıda bırakabilirsiniz.

Varsayılan olarak yum, paket mimarisi ismine eklenerek geçersiz kılınmadığı sürece, paketi işletim sistemi mimarisiyle eşleşen mimariyle yükleyecektir.

Örneğin, 64 bit bir sistemde yum install package, paketin x86_64 sürümünü yüklerken yum install package.x86 (varsa) 32 bit olanı yükleyecektir.

Bir paketi kurmak istediğiniz ancak tam adını bilmediğiniz zamanlar olacaktır. Tümünü ara veya arama seçenekleri, halihazırda etkin olan veri havuzlarında sırasıyla paket adında ve/veya açıklamasında belirli bir anahtar kelimeyi arayabilir.

Örneğin,


yum search log

adlarında ve özetlerinde log kelimesi bulunan paketler için kurulu depolarda arama yapacaktır, oysa


yum search all log

aynı anahtar kelimeyi paket açıklaması ve url alanlarında da arayacaktır.

Arama bir paket listesi döndürdüğünde, yüklemeden önce bunlardan bazıları hakkında daha fazla bilgi görüntülemek isteyebilirsiniz. İşte o zaman bilgi seçeneği kullanışlı olacaktır:


yum info logwatch

Aşağıdaki komutla güncellemeleri düzenli olarak kontrol edebilirsiniz:


yum check-update

Yukarıdaki komut, bir güncellemenin mevcut olduğu tüm kurulu paketleri döndürecektir. Aşağıdaki resimde gösterilen örnekte yalnızca rhel-7-server-rpms'de bir güncelleme mevcuttur:

Daha sonra bu paketi tek başına güncelleyebilirsiniz,


yum update rhel-7-server-rpms

Güncellenebilecek birden fazla paket varsa yum update bunların tümünü aynı anda günceller.

Şimdi, ps2pdf gibi bir yürütülebilir dosyanın adını bildiğiniz halde bunu hangi paketin sağladığını bilmiyorsanız ne olur? yum Whatprovides “*/[executable] ” ile öğrenebilirsiniz:


yum whatprovides “*/ps2pdf”

Artık bir paketi kaldırmak söz konusu olduğunda bunu yum kaldır paketi ile yapabilirsiniz. Kolay, değil mi? Bu, yum'un eksiksiz ve güçlü bir paket yöneticisi olduğunu gösteriyor.


yum remove httpd

Ayrıca Okuyun: RHEL 7 Paket Yönetimini Yönetmek için 20 Yum Komutu

İyi Eski Düz RPM

RPM (diğer adıyla RPM Paket Yöneticisi veya orijinal olarak RedHat Paket Yöneticisi), bağımsız olarak geldiklerinde paketleri yüklemek veya güncellemek için de kullanılabilir. .rpm paketleri.

Paket zaten mevcut değilse yüklemesi gerektiğini belirtmek için genellikle -Uvh bayraklarıyla birlikte kullanılır veya (-U) yüklüyse güncellemeye çalışılır. işlem gerçekleştirilirken ayrıntılı bir çıktı (-v) ve karma işaretleri (-h) içeren bir ilerleme çubuğu. Örneğin,


rpm -Uvh package.rpm

rpm'in diğer bir tipik kullanımı da>rpm -qa ( sorgu tümünün kısaltması) koduyla şu anda kurulu olan paketlerin bir listesini oluşturmaktır:


rpm -qa

Ayrıca Okuyun: RHEL 7'ye Paket Yüklemek için 20 RPM Komutları

Cron kullanarak Görevleri Zamanlama

Linux ve diğer Unix benzeri işletim sistemleri, görevleri (örn. komutlar veya kabuk komut dosyaları) periyodik olarak çalışacak şekilde planlamanıza olanak tanıyan cron adı verilen bir araç içerir. Cron her dakika /var/spool/cron dizininde /etc/passwd içindeki hesapların adını taşıyan dosyalar olup olmadığını kontrol eder.

Komutları çalıştırırken, tüm çıktılar crontab'ın sahibine (veya /etc/crontab dosyasındaki MAILTO ortam değişkeninde belirtilen kullanıcıya) postayla gönderilir. güçlü>, eğer varsa).

Crontab dosyaları (crontab -e yazıp Enter tuşuna basılarak oluşturulanlar) aşağıdaki formata sahiptir:

Bu nedenle, yerel dosya veritabanını (Locate tarafından dosyaları ada veya desene göre bulmak için kullanılır) her ayın ikinci gününde 2:15'de güncellemek istiyorsak, aşağıdakileri eklememiz gerekir: crontab girişi:


15 02 2 * * /bin/updatedb

Yukarıdaki crontab girişinde şöyle yazıyor: " /bin/updatedb'yi ayın ikinci gününde, yılın her ayında, haftanın günü ne olursa olsun, sabah 2:15'te çalıştır". Eminim tahmin ettiğiniz gibi yıldız sembolü joker karakter olarak kullanılıyor.

Cron job ekledikten sonra daha önce de belirttiğimiz gibi /var/spool/cron içerisine root isimli bir dosyanın eklendiğini görebilirsiniz. Bu dosya, crond arka plan programının çalıştırması gereken tüm görevleri listeler:


ls -l /var/spool/cron

Yukarıdaki resimde mevcut kullanıcının crontab'ı cat /var/spool/cron/root kullanılarak görüntülenebilir veya


crontab -l

Bir görevi daha ayrıntılı bir şekilde yürütmeniz gerekiyorsa (örneğin, günde iki kez veya ayda üç kez), cron da bunu yapmanıza yardımcı olabilir.

Örneğin, /my/script'i her ayın 1'inde ve 15'inde çalıştırmak ve herhangi bir çıktıyı /dev/null'a göndermek için şunları yapabilirsiniz: aşağıdaki gibi iki crontab girişi ekleyin:


01 00 1 * * /myscript > /dev/null 2>&1
01 00 15 * * /my/script > /dev/null 2>&1

Ancak görevin sürdürülmesini kolaylaştırmak için her iki girişi de tek bir girişte birleştirebilirsiniz:


01 00 1,15 * *  /my/script > /dev/null 2>&1

Önceki örneği takip ederek, /my/other/script'i her üç ayda bir ayın ilk gününde 01:30'da çalıştırabiliriz:


30 01 1 1,4,7,10 * /my/other/script > /dev/null 2>&1

Ancak belirli bir görevi her "x" dakikada, saatte, günde veya ayda bir tekrarlamanız gerektiğinde, doğru konumu istediğiniz sıklığa bölebilirsiniz. Aşağıdaki crontab girişi öncekiyle tamamen aynı anlama sahiptir:


30 01 1 */3 * /my/other/script > /dev/null 2>&1

Ya da örneğin belirli bir işi sabit bir frekansta veya sistem başlatıldıktan sonra çalıştırmanız gerekebilir. İşinizin tam olarak ne zaman çalışmasını istediğinizi belirtmek için beş alan yerine aşağıdaki dizelerden birini kullanabilirsiniz:


@reboot    	Run when the system boots.
@yearly    	Run once a year, same as 00 00 1 1 *.
@monthly   	Run once a month, same as 00 00 1 * *.
@weekly    	Run once a week, same as 00 00 * * 0.
@daily     	Run once a day, same as 00 00 * * *.
@hourly    	Run once an hour, same as 00 * * * *.

Ayrıca Okuyun: RHEL 7'de Cron İşlerini Planlamak için 11 Komut

Günlükleri Bulma ve Kontrol Etme

Sistem günlükleri /var/log dizininde bulunur (ve döndürülür). Linux Dosya Sistemi Hiyerarşi Standardına göre bu dizin, kendisine veya uygun bir alt dizine (audit, httpd veya samba gibi) yazılan çeşitli günlük dosyalarını içerir. aşağıdaki resimde) sistem çalışması sırasında ilgili servisler tarafından:


ls /var/log

Diğer ilginç günlükler dmesg (çekirdek halka arabelleğindeki tüm mesajları içerir), güvenli (kullanıcı kimlik doğrulaması gerektiren bağlantı girişimlerini günlüğe kaydeder), mesajlar (sistem çapında mesajlar) ve wtmp'dir (tüm kullanıcı oturum açma ve çıkışlarının kayıtları).

Günlükler, sisteminizde her zaman neler olup bittiğine ve geçmişte neler olduğuna dair bir fikir sahibi olmanızı sağlaması açısından çok önemlidir. Bir Linux sunucusunun sorunlarını gidermek ve izlemek için paha biçilmez bir araçtırlar ve bu nedenle olayları gerçek zamanlı olarak, gerçekleştikleri ve bir günlüğe kaydedildikleri anda görüntülemek için genellikle tail -f komutu ile birlikte kullanılırlar.

Örneğin, çekirdek ile ilgili olayları görüntülemek istiyorsanız aşağıdaki komutu yazın:


tail -f /var/log/dmesg

Web sunucunuza erişimi görüntülemek istiyorsanız aynısı:


tail -f /var/log/httpd/access.log

Özet

Paketleri verimli bir şekilde nasıl yöneteceğinizi, görevleri nasıl planlayacağınızı ve sisteminizin mevcut ve geçmiş işlemleriyle ilgili bilgileri nerede arayacağınızı biliyorsanız, sürprizlerle çok sık karşılaşmayacağınızdan emin olabilirsiniz. Umarım bu makale bu temel beceriler hakkında bilgi edinmenize veya bilgilerinizi yenilemenize yardımcı olmuştur.

Sorularınız veya yorumlarınız varsa aşağıdaki iletişim formunu kullanarak bize yazmaktan çekinmeyin.