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.

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.

Ş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.

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.

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.

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.