BASH: SysAdminler için 50 Harika Crontab Komutu

 

Linux, ister kişisel ister iş olsun, sisteminizi kontrol etmenin en güvenilir, tutarlı ve akıllı yollarından bazılarını sunar. Aslında, belirli kullanım durumları için özel olarak tasarlanmış yüzlerce sistem yardımcı programı vardır. Crontab komutu, sistem yönetimlerini çok daha verimli hale getirebilen böyle bir komuttur. Bu, çoğu Unix sisteminde yerleşik olarak bulunan kullanışlı bir yazılım yardımcı programıdır ve sistem yöneticisinin cron işlerini oluşturmasına ve düzenlemesine izin verir. Peki, nedir bu cron işleri ve önemi nedir? İşte size cron işlerini tanıtacak ve 50 faydalı crontab örneğini sergileyecek ayrıntılı bir kılavuz.

Faydalı Linux Crontab Komutları


Bu kılavuz, crontab komutlarını başlangıç seviyesindeki Linux kullanıcılarına ve başlangıç sistem yöneticilerine tanıtmayı amaçlamaktadır. Crontab Linux komutlarının temellerini öğrenebilir ve bu gönderiyi ileride başvurmak üzere yer imlerine ekleyebilirsiniz. Deneyimli bir sistem yöneticisiyseniz, kılavuz sayfasına danışmak sizin için daha iyi bir seçim olacaktır.

Cron ve Crontab: Kısa Bir Bakış


cron temel olarak birçok geleneksel ancak tekrar tekrar kullanılan işlevselliği otomatikleştirmeye yardımcı olabilecek bir iş zamanlayıcısıdır. Diyelim ki, bir sistem yöneticisinin sistemini her hafta daha yeni paketler için güncellemesi gerekiyor. Ayrıca kullanılmayan paketleri her ay temizlemek isteyebilir. Şimdi, bunlar sistem yöneticisinin otomatikleştirmeyi seçebileceği basit ama tekrarlayan görevlerdir. Cron tam olarak bunu yapmamıza izin veriyor.

crontab Linux example

Cron, crontab dosyasını kullanarak çalışır. Bu dosya, tüm zamanlanmış işleri ve bunların ne zaman gerçekleştirileceğini listeler. Standart bir Linux makinesinde, kullanıcı ayrıcalıklarına bağlı olarak farklı crontab dosyaları bulunur. Örneklerimizi çoğunlukla varsayılan kullanıcıların crontab’ına dayandıracağız.

Linux’taki crontab komutu, bireysel kullanıcılar için crontab dosyalarını yönetir. Yani crontab, crontab dosyalarını değiştirmemizi ve cron’un bunları çalıştırmasını sağlayan komuttur. Crontab dosyamızdaki görevler cron işleri olarak bilinir ve standart Linux komutlarından oluşur. Ayrıca, cron’un bunları çalıştırması gereken zaman aralığını da içerirler.

Crontab Komut Yapısı Açıklaması


Crontab’daki her giriş belirli bir işi temsil eder. Bunlar, yürütülme zamanlarının önüne eklenen komutlar biçimindedir. Korunması gereken sıkı bir sözdizimleri vardır, aksi takdirde cron işleriniz istediğinizi gerçekleştiremeyebilir. Bu sözdizimi, daha ayrıntılı değerlendirme için aşağıda gösterilmiştir.

Varsayılan kullanıcının crontab girişleri altı ayrı alana sahiptir. Kök kullanıcının crontab girişleri, belirli bir cron işini kimin çalıştıracağını belirtmek için ek bir alan içerir. Şimdi, bu alanların neyi belirlediğine ve amaçlarına bakalım.

m h dom mon dow command

Yukarıdaki ilk beş alan, altıncı alanda belirtilen komutların ne zaman çalıştırılacağı hakkında bilgi aktarmak için kullanılır. İlk alan, cron’un komutu hangi dakikada çalıştıracağını belirtmek için kullanılır. İkinci alan saati (24 saatlik format), üçüncü alan ayın tarihini, sonraki alan ayı ve bir sonraki alan haftanın gününü temsil eder.

crontab structure

Şu anda anlamadıysanız endişelenmeyin. Bazı faydalı komutları gözden geçirmek, onları çok daha iyi anlamanızı sağlayacaktır. Bu yüzden bizi takip edin ve bu komutları deneyin. Şimdilik kullanıcı oturumunuza bağlı kalın, root ayrıcalıklarını kullanarak denemenize gerek yok.

Temel Linux Crontab Komutları


Temel crontab komutlarını anlamak, uzun vadede sisteme hakim olmanıza yardımcı olacaktır. Aşağıda, bir Linux sistem yöneticisi olarak üretkenliğinizi yepyeni bir seviyeye taşıyacak bazı temel ancak önemli komutları ele alıyoruz. İlk elden deneyim kazanmak için hemen deneyin.

1.Crontab’ı Düzenleme

$ crontab -e

Yukarıdaki komut, varsayılan crontab’ınızı çağırmak için kullanılır. Artık bu dosyayı düzenleyebilir ve belirli bir zamanda çalıştırılacak olan işlerinizi ekleyebilirsiniz. Varsayılan olarak, bu crontab, işlevselliğini daha ayrıntılı olarak anlamanıza yardımcı olacak bazı açıklamalar içermelidir.

2. Crontab’ı Listeleme

Kullanımda olan mevcut crontab’ı listelemek için aşağıdaki komutu kullanabilirsiniz. Bu komut, crontab dosyasının içeriğini standart çıktıya aktarır. Crontab’ları incelerken işinize yarayabilir.

$ crontab -l

3. Kullanıcı için Crontab’ı Düzenleme

Sisteminizde User adında bir kullanıcı olduğunu ve bu kullanıcının crontab yapılandırmasını düzenlemek istediğinizi varsayalım. Bir sonraki komut bunu nasıl yapacağınızı gösteriyor. Kullanıcı adı -u seçeneğiyle aktarılır. Bu, sistemdeki diğer kullanıcıları kontrol etmesi gereken sistem yöneticileri için kullanışlı bir komuttur.

$ crontab -u User -e

Bu komut aşağıdaki komuta benzerdir.

$ crontab -e User

4. Kullanıcı için Crontab’ı Listeleme

Başka bir kullanıcının crontab’ını listelerken de aynı yapı izlenir. Tek yapmanız gereken, ikinci örnekte olduğu gibi -e seçeneğini -l seçeneğiyle değiştirmektir.

$ crontab -u User -l

Bu komut aşağıdaki komutla eş anlamlıdır.

$ crontab -l User

5. Crontab Dosyasını Doğrulama

Belirli bir kullanıcının kendi crontab’larına sahip olup olmadığını doğrulamanız gerekebilir. Bir sonraki komut bunu nasıl yapabileceğinizi göstermektedir.

$ sudo ls -l /var/spool/cron/crontabs

Sisteminizdeki her kullanıcının mevcut tüm crontab’larını standart çıktıya yazdırmalıdır.

6. Crontab dosyasında silme işlemi

Önceden zamanlanmış tüm görevleri sonlandırmak istiyorsanız, crontab’ı silmek bir seçenektir; aşağıdaki komut, şu anda oturum açmış kullanıcı için bunun nasıl yapılabileceğini gösterir.

$ crontab -r

Crontab’ı kaldırmak için crontab’a -r(remove) bayrağını geçirmeniz yeterli.

7. Kullanıcının Crontab dosyasını silme işlemi

Kullanıcının crontab’ını silmek için aşağıdaki komutu izleyin.

$ crontab -u User -r

Aynı işlemi aşağıdaki komutla da yapabilirsiniz.

$ crontab -r User

8. Crontab Erişimini Belirtilen Kullanıcılarla Sınırlandırma

Sistem yöneticileri, crontab erişimini yalnızca belirli kullanıcılarla sınırlamak isteyebilir. Bunun için cron.allow dosyasına ihtiyacımız olacak. Aşağıdaki komutu çalıştırarak crontab dosyasının sisteminizde mevcut olup olmadığını kontrol edin.

$ ls /etc/cron.d/ | grep ".allow"

Eğer bu dosya mevcutsa, root olarak düzenleyebilir ve sisteminizdeki crontab dosyalarına kimlerin erişebileceğini belirleyebilirsiniz. Aksi takdirde, süper kullanıcı olarak giriş yapın ve bu dosyayı kendiniz oluşturun.

# vim /etc/cron.d/cron.allow

Crontab erişimini etkinleştirmek istediğiniz kullanıcı adlarını girin. En üste root yazmayı unutmayın, aksi takdirde kendi crontab’ınıza erişiminiz engellenebilir.

9. Belirtilen Kullanıcılara Crontab Erişimini Reddetme

Cron.deny dosyasını kullanarak belirli kullanıcıların crontab erişimini çok kolay bir şekilde engelleyebilirsiniz. Root olarak oturum açın ve cron.deny dosyasını oluşturun/düzenleyin.

# vim /etc/cron.d/cron.deny

Crontab erişimini engellemek istediğiniz kullanıcı adlarını listeleyin. Bu kullanıcılar artık sisteminizdeki crontab’ları listeleyemeyecek veya düzenleyemeyecektir.

Yeni Başlayanlar İçin Günlük Crontab  Komutları


Şimdi size, bilgisayar kullanımını çok daha eğlenceli hale getirecek, sık kullanılan bazı crontab komutlarını göstereceğiz. Bu komutlar genel olduğundan, ihtiyaçlarınıza göre hızlıca düzenleyebilirsiniz. Bunları dikkatlice denemenizi öneririz, aksi takdirde sonradan pişman olacağınız bir şey yapabilirsiniz.

crontab-command-linux

10. Her Gün Sabah 5’te Tüm Kullanıcı Hesaplarının Yedeğini Oluşturun

0 5 * * * tar -zcf /var/backups/home.tgz /home/

Yukarıdaki girdiyi crontab -e komutunu kullanarak crontab dosyanıza ekleyin; cron, sisteminizdeki tüm kullanıcı hesaplarının yedeğini her gün tam 05:00’te oluşturacaktır. Baştaki 0 ​​ilk dakikayı, 5 ise saat 05:00’i gösterir.

11. Haftada Bir Sabah 5’te Tüm Kullanıcı Hesaplarının Yedeğini Oluşturun

0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

Yukarıdaki crontab komutu, yedekleme dosyasını her gün yerine her hafta oluşturacaktır. Burada, son zaman değerinin * yerine 1 ile değiştirildiğine dikkat edin.

12. Cron’u Bir İşi Günde İki Kez Çalıştıracak Şekilde Zamanlayın

0 5,17 * * * /scripts/script.sh

Yukarıdaki crontab komutu, cron’un script.sh dosyasını her gün sabah 5 ve akşam 5’te çalıştırılabilir hale getirmesini sağlayacaktır. Virgülün birden fazla saat değerini belirtmek için kullanıldığına dikkat edin. Görevi ikiden fazla kez gerçekleştirmek için virgülle ayrılmış bir liste kullanarak daha fazla değer ekleyebilirsiniz.

13. Cron’u Her Gün Sabah 2’de Bir İşi Yürütecek Şekilde Zamanlayın

0 2 * * * /bin/sh backup.sh

Yukarıdaki girdiyi crontab dosyanıza eklerseniz, cron her gün sabah 2’de backup.sh betiğini çalıştıracaktır. Ancak, betiğin çalıştırılabilir izinlere sahip olduğundan ve belirtilen dizinde bulunduğundan emin olun.

14. Cron’u Her Gün Sabah 3:15’te Bir İşi Yürütecek Şekilde Zamanlayın

15 3 * * * /bin/sh script.sh

Yukarıdaki crontab girişi, her gün sabah 3:15’te ‘script.sh’ adlı bash betiğini çalıştıracaktır. Bu tür crontab’lar, her gün çalıştırılması gereken işleri planlarken faydalı olacaktır.

15. Her Hafta Saat 20:00’de Bir İşi Yürütmek İçin Cron’u Zamanlayın

0 20 * * 1 /bin/sh script.sh

Yukarıdaki crontab komutu, cron’un script.sh dosyasını her hafta saat 20:00’de çalıştırmasını sağlayacaktır. Crontab’larınızda pm değerlerini belirtmek için saat değerinin 24 saatlik zaman biçiminde belirtilmesi gerekir.

16. Pazartesi günü saat 20:00’de bir işi yürütmek için Cron’u zamanlayın

0 20 * * Mon /bin/sh script.sh

Yukarıdaki crontab komutu, cronjob’u her pazartesi saat 20:00’de çalıştırır. Bu komut, bir sonraki komutla aynıdır.

0 20 * * 7 /bin/sh script.sh

Yani son zaman alanındaki 7 Pazartesi’yi ifade ediyor.

17. Pazartesi ve Cumartesi günleri saat 20:00’de bir Cron İşi planlayın

0 20 * * Mon,Sat /bin/sh script.sh

Crontab’ınızdaki yukarıdaki giriş, cron’un script.sh dosyasını her Pazartesi ve Cumartesi saat 20:00’de çalıştırmasını sağlayacaktır. Virgülle ayrılmış bir liste kullanarak gün adını belirterek bu betiği haftanın herhangi bir gününde de çalıştırabilirsiniz.

Ancak, birçok cron görevi kısaltılmış değerlerle çalışmayacağından, her zaman sayısal değer belirtmeye çalışmalısınız. Aynı komutun sayısal değer kullanılarak belirtilmesi aşağıda gösterildiği gibi olacaktır.

0 20 * * 1,6 /bin/sh script.sh

18. Her Dakikada Bir Cron İşinin Çalıştırılmasını Planlayın

Genellikle her dakika bir cron görevinin çalıştırılmasına ihtiyacınız olmaz. Ancak bu, Linux’ta crontab komutunu kullanarak bunu nasıl yapabileceğinize dair mükemmel bir örnektir.

* * * * * /scripts/script.sh

Crontab’larınızın zaman alanındaki tüm yıldızlar, script.sh dosyasının her dakika çalışacağı anlamına gelir. Bunu sunucularda denememelisiniz; aksi takdirde sistemi çok hızlı bir şekilde bozabilirsiniz.

19. Her 10 Dakikada Bir Çalıştırılacak Bir Cron İşi Planlayın

Bazen cron’un bir işi belirtilen her zaman diliminde çalıştırmasını isteyebilirsiniz. Aşağıdaki komut, bir görevin her 10 dakikada bir nasıl çalıştırılacağını göstermektedir.

*/10 * * * * /scripts/script.sh

Yukarıdaki komut, cron’un script.sh dosyasını her 10 dakikada bir çalıştırabilmesini sağlayacaktır. / operatörü, crontab’ınızdaki bu adım değerlerine ulaşmak için kullanılır.

20. Pazar ve Pazartesi günleri her 15 dakikada bir çalışacak bir Cron İşi planlayın

Sonraki komut, cron’a belirtilen işi Pazar ve Pazartesi günleri her 15 dakikada bir çalıştırmasını söyler. Bu komut birkaç nedenden dolayı faydalıdır. Sisteminiz belirli günlerde belirli görevleri gerçekleştiriyorsa, bu komut işinize yarayabilir.

*/15 * * * Sun,Mon /scripts/script.sh

Aynı komut aşağıda gösterildiği gibi daha pratik bir şekilde yazılabilir.

*/15 * * * 7,1 /scripts/script.s

21. Schedule a Cron Job to Run on Specified Months

* * * jan,may,aug * /script/script.sh

Yukarıdaki crontab, cron’un Ocak, Mayıs ve Ağustos aylarında her dakika belirtilen betiği çalıştırmasını sağlayacaktır. Haftalarda olduğu gibi, aynı komut aşağıda gösterildiği gibi yalnızca sayısal değerler kullanılarak da yazılabilir.

* * * 1,5,8 * /script/script.sh

22. 15 Ocak’ta Saat 20:00’de Çalıştırılacak Bir Cron İşi Planlayın

0 20 15 1 * /script/script.sh

Crontab’ın asıl gücü, sistem yöneticilerinin çok sağlam zaman aralıkları tanımlamasına olanak sağlamasıdır. Yukarıdaki komut, script.sh dosyasını her 15 Ocak saat 20:00’de çalıştıracaktır. Aynı komut aşağıdaki gibi de yazılabilir.

0 20 15 Jan * /script/script.sh

23. Her İkinci Ayda Bir Çalıştırılacak Bir Cron İşi Planlayın

Crontab Linux komutunu kullanarak yılın her ikinci ayında çalışacak bir cron işi planlayabilirsiniz. Bunun için crontab dosyanıza aşağıdaki satırı eklemeniz yeterlidir.

0 0 15 */2 * /script/script.sh

Yukarıdaki crontab girişi, cron’a yılın her ikinci ayında her ayın 15’inde script.sh dosyasını çağırmasını söyler. Bu tür komutlar, sistemi güncellemek veya temizlemek için kullanışlıdır.

24. Her Ayın İlk Pazar Günü Çalıştırılacak Bir Cron İşi Planlayın

Crontab zaman aralığı değerlerini kullanarak her ayın ilk Pazar günü çalışacak bir iş planlamak mümkün değildir. Ancak, bunu başarmak için komut bölümünün koşullu kısmından yararlanabiliriz. Aşağıdaki komutun nasıl dikkatlice uygulandığına dikkat edin.

0 2 * * sun [ $(date +%d) -le 07 ] && /script/script.sh

Bu giriş, script.sh dosyasını yalnızca her ayın ilk pazar günü çağıracaktır. Aşağıda gösterilen komuta benzerdir.

0 2 * * 7 [ $(date +%d) -le 07 ] && /script/script.sh

25. Her Üç Saatte Bir Çalışacak Bir Cron İşi Planlayın

Aşağıdaki crontab girişi her üç saatte bir cron işini çağırır.

0 */3 * * * /script/script.sh

/3’ten önce *’in nasıl eklendiğine bakın. Cron’a komutu ‘her’ 3 saatte bir çalıştırmasını söyler.

26. Her Cumartesi ve Pazartesi günü iki kez çalıştırılacak bir Cron İşi planlayın

Sistem yöneticileri genellikle belirli komutları her hafta birden fazla kez çalıştırmak ister. Aşağıdaki crontab girişi, cron’un her Cumartesi ve Pazartesi günü bir işi iki kez çalıştırmasını sağlayacaktır.

0 8,20 * * 6,1 /scripts/script.sh

Cron artık script.sh dosyasını her Cumartesi ve Pazartesi günü hem sabah 8’de hem de akşam 8’de çalıştıracak. Yukarıdaki girdi, bir sonraki girdiyle eşdeğerdir.

0 8,20 * * sat,mon /scripts/script.sh

27. Her 30 Saniyede Bir Çalıştırılacak Bir Cron İşi Zamanlayın

Crontab’ın zaman alanı parametresini kullanarak her 30 saniyede bir çalışacak bir cron işi belirtmek mümkün değildir. Ancak, aşağıdaki girdileri kullanarak bunu yine de yapabiliriz.

* * * * * /scripts/script.sh
* * * * * sleep 30; /scripts/script.sh

Aslında bunun için iki farklı girdiye ihtiyaç vardır. İlk crontab girdisi, cron’a betiği her dakika çalıştırmasını söyler. İkinci girdi ise cron’un 30 saniyelik bir aradan sonra bir sonrakini çalıştırmasını sağlar.

28. Tek Bir Crontab Girişinde Birden Fazla İşi Zamanlama

Crontab, yöneticilerin tek bir girdide birden fazla görev belirtmesine olanak tanır. Tek yapmanız gereken, görevleri noktalı virgül (;) ayırıcısını kullanarak ayırmaktır. Aşağıdaki crontab Linux komutu, her gün sabah 8’de iki betiği çağırır.

0 8 * * * /scripts/script.sh; /scripts/scrit2.sh

29. Yıllık Cron İşlerini Planlayın

Crontab, kullanıcıların yıllık cron işlerini planlamalarına olanak tanır. Bu işler her yılın ilk dakikasında yürütülür. Bu komutlar, sistem genelinde değişiklikler yapmak veya yeni yıl tebrikleri göndermek için kullanışlı olabilir.

@yearly /scripts/script.sh

Yukarıdaki komut aşağıdaki komutlara eşdeğerdir.

0 0 1 1 * /scripts/script.sh
@annually /scripts/script.sh

30. Aylık Cron İşlerini Planlayın

Kısa formlar kullanılarak aylık ve haftalık cron işleri de belirlenebilir. system-upgrade.sh betiğini çalıştıran aylık bir cron işinin sözdizimi aşağıda gösterilmiştir.

@monthly /scripts/system-upgrade.sh

Yukarıdaki komut bir sonraki komuta eşdeğerdir.

0 0 1 * * /scripts/system-upgrade.sh

31. Haftalık Cron İşlerini Planlayın

Sisteminizi kullanılmayan paketlerden her hafta temizlemek isteyebilirsiniz. Crontab, kullanıcıların @weekly tanımlayıcısını kullanarak haftalık işleri kolayca belirlemelerine olanak tanır. Sözdizimi aşağıda gösterilmiştir.

@weekly /scripts/system-cleanup.sh

Bu komut, haftanın ilk dakikasında system-cleanup.sh betiğini çağıracaktır. Notasyon, anlam olarak aşağıdaki komuta benzerdir.

0 0 1 * mon /scripts/system-cleanup.sh

32. Günlük Cron İşlerini Planlayın

Cron ayrıca kullanıcıların günlük cron işlerini belirtmek için @daily kısaltmasını kullanmalarına da olanak tanır. Bunlar, sisteminizin günlük bakımı için kullanışlıdır. Aşağıda gösterildiği gibi kullanın.

@daily /scripts/script.sh

Bu komut her günün ilk dakikasında çalıştırılacaktır. Komut, bir sonraki komuta benzer şekilde çalışır.

0 0 * * * /scripts/script.sh

33. Saatlik Cron İşleri Planlayın

Saatlik cron işleri, istenmeyen IP’leri kara listeye alma, başarısız oturum açma girişimlerini temizleme gibi birçok görev için kullanışlıdır. @hourly tanımlayıcısı, her saat çalıştırılması gereken cron işlerini belirtmek için kullanılabilir. Bu crontab girişleri aşağıdaki biçimdedir.

@hourly /scripts/script.sh

Aşağıdaki komuta benzerdir.

0 0 * * * /scripts/script.sh

34. Sistem Yeniden Başlatıldığında Bir Cron İşi Planlayın

Crontab komutu, yöneticilerin sistem yeniden başlatıldığında çalıştırılması gereken cron işlerini belirlemelerine olanak tanır. Bu işler, yol değişkenlerini değiştirmekten özel yapılandırma dosyalarını otomatik yüklemeye kadar değişebilir. @reboot tanımlayıcısı kullanılarak hızlıca yapılabilirler.

@reboot /scripts/script.sh

Bu crontab girişi her sistem yeniden başlatıldığında script.sh bash betiğini çağırır.

35. Cron Sonuçlarını Belirtilen E-posta Hesabına Gönder

Varsayılan olarak, cron, zamanlanmış cron işlerinin raporlarını, işi zamanlayan kullanıcının e-postasına gönderir. Bunu, bir sonraki örnekte gösterildiği gibi, e-posta değişkeninin değerini değiştirerek yönlendirebilirsiniz.

# crontab -l
[email protected]
0 2 * * * /script/backup.sh

backup.sh cron işi yürütüldükten sonra, cron raporları [email protected] mail adresine gönderecektir.

Crontab Komutlarını Root Olarak Çalıştırma


Linux’ta birçok görev, sudo gibi ek yetkiler gerektirir. Ancak, standart bir kullanıcı crontab’ından sudo komutlarını çalıştırmak için kullanıcıların parolalarını sistemlerinde bir yerde düz metin dosyasında saklamaları gerekir. Bu iyi bir uygulama değildir ve bu tür komutlar root kullanıcının crontab’ından zamanlanmalıdır. Root kullanıcının crontab’ı, zaman alanı ile komut bölümü arasında bir giriş daha içerir. Bu giriş, işlerin hangi kullanıcı adına çalıştırılacağını belirtmek için kullanılır.

editing crontab as root 1

36. Her gün sabah 1’de tüm Faillog girişimlerini temizle

0 1 * * * root echo " " > /var/log/faillog

Yukarıdaki komut, sisteminize yapılan tüm başarısız giriş denemelerini her gün saat 01:00’de temizleyecektir. Bu komutu saat 01:00 yerine istediğiniz herhangi bir saatte çalıştırmak için değerleri değiştirebilirsiniz.

Aynısı aşağıdaki komut kullanılarak da yapılabilir. Burada, günlük verilerini temizlemek için echo komutu yerine dd komutunu kullanıyoruz.

0 1 * * * root dd if=/dev/null > faillog

37. Her 10 günde bir sabah 2’de tüm Sistem Günlüklerini kaydedin

Sistem günlük dosyası, Linux makinemiz hakkında faydalı bilgiler sağlar ve birçok sistem yöneticisi için hayati önem taşır. Crontab’ınıza aşağıdaki crontab komutunu ekleyerek her on günde bir saat 02:00’de tüm sistem günlüklerini kaydedin.

0 2 */10 * * echo " "> /var/log/syslog

Aynı işlem crontab girişindeki dd komutu kullanılarak da yapılabilir.

0 2 */10 * * dd if=/dev/null > /var/log/syslog

38. Yeni Sistem Paketlerini Kontrol Edin ve İndirin

Aşağıdaki crontab komut girişi her ayın ilk günü saat 12’de yeni sistem paketlerini kontrol eder.

0 12 1 * * root apt-get update

This command is handy for updating your system packages on a monthly basis.

39. Sistem güncellemelerini Cron İşleri Olarak Zamanlayın

Sisteminizi otomatik olarak yükseltmek için cron’u zamanlayabilirsiniz. Bu işlem için crontab girişi aşağıda özetlenmiştir.

0 12 1 * * root apt-get -y upgrade

-y bayrağı gereklidir; aksi takdirde işlem manuel kabulünüzü beklerken askıda kalacaktır.

40. Paket Listesini Güncelleyin ve Sistemi Yükseltin

Paketlerinizi güncellemek ve daha yeni sürümlere yükseltmek için yukarıdaki iki komutu aşağıda belirtilen crontab girdisini kullanarak birleştirebilirsiniz.

0 12 1 * * root apt-get update && apt-get -y upgrade

Yukarıdaki crontab Linux komutu, her ayın ilk günü saat 12:00’de paket listenizi güncelleyecek ve mevcutsa daha yeni paketlere yükseltecektir.

41. Gereksiz Bağımlılıkları Kaldırmak İçin Bir Cron İşi Planlayın

Linux sistemleri genellikle sistem tarafından artık ihtiyaç duyulmayan birçok bağımlılığı biriktirir. Bu bağımlılıkları manuel olarak silmek birçok sistem yöneticisi için zahmetli bir iş haline gelebilir. Bu işlemi sizin için otomatikleştirmek üzere cron kullanabilirsiniz. Bir sonraki crontab girdisi, sisteminiz tarafından artık ihtiyaç duyulmayan tüm bağımlılıkları otomatik olarak algılar ve kaldırır.

0 1 1 * * root apt-get -y autoremove

Yukarıdaki komut, her ayın ilk günü saat 01:00’de kullanılmayan tüm bağımlılıkları temizler. -y işareti zorunludur, aksi takdirde işlem kullanıcı onayını beklerken askıda kalacaktır.

42. Yerel Depoyu Temizlemek İçin Bir Cron İşi Planlayın

Alınan paket dosyalarının yerel deposunu otomatik olarak temizlemek için cron kullanabilirsiniz. Bunun için tek yapmanız gereken, sistem genelindeki crontab’ınıza bir sonraki girişi eklemektir.

0 2 1 * * root apt-get clean

The above entry schedules a repository cleaning for your packages at 2 am on the first day of every month.

43. Önbellekleri Temizlemek İçin Bir Cron İşi Planlayın

Önbellekler, hizmetlere hızlı erişim sağlamak için kullanılır. Ancak, zamanla çok büyük boyutlara ulaşabilir ve yöneticilerin bunları düzenli olarak temizlemesini gerektirebilir. Aşağıdaki crontab girişi, PageCache, dentries ve inode önbelleklerini temizlemek için bir cron görevinin nasıl planlanacağını gösterir.

0 3 1 * * root sync; echo 3 > /proc/sys/vm/drop_caches

Yukarıdaki giriş, her ayın ilk günü saat 03:00’te PageCache, dentries ve inode’lardaki tüm verileri temizler. Ancak, sisteminize tam olarak ne yaptığını bilmiyorsanız, bunu crontab’ınıza eklememenizi öneririz.

Çeşitli Crontab Komutları


Linux crontab komutları oldukça çeşitli olabileceğinden, sistem yönetimi üzerinde önemli bir etkiye sahip olan bazı temel komutları listeleyeceğiz. Bunlar genellikle sisteminizin etkili bir şekilde otomasyonunu sağlayabilir ve dolayısıyla bir sistem yöneticisi olarak üretkenliğinizi yepyeni bir seviyeye taşıyabilir.

44. Kullanıcınız için Özel Crontab Kurun

Varsayılan crontab’ın yanı sıra, kullanıcılar kendi özel crontab dosyalarını da yükleyebilirler. Bunun nasıl yapılacağı aşağıda gösterilmiştir.

$ crontab -a filename

Bu komut, ‘filename’ belgesini crontab’ınız olarak yükler. Çoğu sistemde -a bayrağı gerekli değildir.

45. Tüm Cron İşlerini Düz Metin Dosyasına Yedekleyin

Sistem yöneticileri genellikle ileride başvurmak üzere crontab kayıtlarının yedeğini saklamak isterler. Bu, birkaç şekilde yapılabilir. Aşağıdaki komut, tüm cron işlerinin yedeğinin cron-backup.txt adlı düz metin dosyasında nasıl saklanacağını gösterir.

$ crontab -l > cron-backup.txt

Bu komut, yalnızca geçerli kullanıcı için crontab girdilerini kaydeder. Sistem genelindeki tüm cron işlerini kaydetmek için root olmanız gerekir.

46. ​​Yedekleme Dosyasından Cron İşlerini Geri Yükle

Mevcut crontab’ı sildiyseniz, yukarıdaki komutla oluşturduğunuz yedekleme dosyasını kullanarak geri yükleyebilirsiniz. Bu komutun sözdizimi aşağıda gösterilmiştir.

$ crontab cron-backup.txt

Bu komutun yaptığı tek şeyin, cron-backup.txt dosyasını yeni crontab’ınız olarak kurmak olduğunu fark etmelisiniz.

47. Change the Mail Address for Cron Reports

You can change the mail address at which cron sends our job-specific reports by adding the MAILTO variable inside your crontab. This is demonstrated below.

#crontab -e
[email protected]
#add the above line inside your crontab

Bu satırı ekledikten sonra cron artık zamanlanmış işlerle ilgili raporları [email protected] adresine gönderecek.

48. Path Değişkeninin Değerini Değiştirin

PATH değişkenini kullanarak doğrudan crontab’ınızdan path değişkenlerinin değerini değiştirebilir veya ekleyebilirsiniz. Bu aşağıda gösterilmiştir.

#crontab -e
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
#add the above line inside your crontab

Artık cron yukarıda belirtilen dizinleri yolunuz olarak kabul edecek.

49. Crontab Kılavuzunu Kontrol Edin

$ man crontab

Yukarıdaki komut, crontab komutunun kullanım kılavuzu sayfasını yazdırır. Crontab’ı detaylı olarak öğrenmek veya bir soruna hızlı bir çözüm arıyorsanız, kullanım kılavuzu sayfasına göz atmak kesinlikle ilk önceliğiniz olmalıdır.

50. Cron Kılavuzunu Kontrol Edin

Cron kılavuz sayfası, cron’a özgü bilgiler sağlar. Cron’u etkili bir şekilde öğrenmek isteyen kullanıcılar için kullanışlı bir araçtır. Aşağıdaki komutu kullanarak cron kılavuz sayfasına ulaşabilirsiniz.

$ man cron

 

Yazının orijinalini buradan okuyabilirsiniz.

Hüseyin GÜÇ

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.