
Joseph Goodman
0
4669
668
Bunu biliyor muydun Bıçak koşucu 2019’da ayarlandı mı? Bundan üç yıl sonra! Lafı olmaz Geleceğe Dönüş 2, 2015'e doğru zaman yolculuğu yaptıkları yerde. Yine de uçan arabalarımız yok ve aramızda hiçbir kopya yok (bildiğim kadarıyla).
Geleceğin kurgusal tasviri ile karşılaştırdığımızda mevcut teknolojiden hayal kırıklığına uğramak çok kolay. Yine de bugünlerde telefonlarımız, bilgisayarlarımız ve hatta evlerimiz inanılmaz şeyler yapabilir Akıllı Evinizle Başlamak İçin 5 DIY Ev Otomasyonu Projesi 5 Akıllı Evinizle Başlamak İçin 5 DIY Ev Otomasyonu Projesi Akıllı Evlerinizle Başlarken, çoğu insan Sadece nereden başlayacağımı bilmiyorum. İşte şimdi yapabileceğiniz beş yeni başlayanlar akıllı ev projeleri. . Görevleri otomatikleştirme yeteneği bunlardan biridir.
Her Linux kullanıcısı zamanlama görevlerinden (sistemle ilgili olsunlar da olsa) (eski günlükleri temizleme ve paketleri güncelleme gibi) Saniyeler İçinde Bir veya Tüm Uygulamaları Güncelleştirme Saniyeler İçinde Bir veya Tüm Uygulamaları Güncelleme Linux Terminali Bilgisayarınızdaki tek bir uygulamayı güncellemeyi veya mevcut tüm güncellemeleri bir kerede uygulamanızı kolaylaştırır. İşte nasıl.) veya kullanıcıya hizmet verme (e-postaları kontrol etme, podcast'leri indirme…). Windows kullanıcıları, Görev Zamanlayıcı 4'ü Windows Görev Zamanlayıcı ile Otomatikleştirebileceğiniz Sıkıcı Görevlere sahipti. Windows Görev Zamanlayıcı 4, Windows Görev Zamanlayıcı ile Otomatikleştirebileceğiniz Sıkıcı Görevler Zamanınızı tekrarlayan görevlerle israf edilemeyecek kadar değerlidir. Size görevleri nasıl otomatikleştireceğinizi ve zamanlayacağınızı gösterelim. Bizim de harika örneklerimiz var. Windows 95'ten beri. Linux'ta aynı işi yapan yardımcı programa cron adı verilir ve burada nasıl kullanılacağını açıklayacağız..
Cron Nedir??
Cron, arka planda çalışan, zamanlanmış görevleri kontrol eden ve varsa bulursa çalışan bir sistem hizmetidir. Görevleri - denir “cron jobs 5 Acemi Linux Kurulum Fikirleri Cron Jobs & Shell Scriptleri İçin 5 Acemi Linux Kurulum Fikirleri Cron Jobs & Shell Scriptleri İçin bash komut dosyasıyla, karmaşık ve tekrarlı gereksinimler için mükemmel olan tek bir hızlı işlemle karmaşık bir dizi görevi gerçekleştirebilirsiniz. Terminali tanımak için de harika bir yol. ” - Her dakika cron tarayan özel konfigürasyon dosyalarında (crontab) tanımlanır. Farklı Linux dağıtımlarında çeşitli cron sürümleri bulunabilir. Örneğin, Fedora'nın cron çatalına cronie denir ve ayrıca fcron, bcron ve dcron da vardır. Bazıları ekstra özelliklere sahipken, diğerleri daha çok güvenlik odaklı olmakla birlikte, hepsi aynı fikir üzerine kuruludur..
Bu kılavuz, cron'un en yaygın versiyonu olan ve Ubuntu ve türevlerinde bulacağınız vixie-cron için yazılmıştır. Talimatların çoğu diğer cron uygulamaları için de geçerli olsa da, küçük farklılıklar olabilir, bu yüzden değiştirmeye karar verirseniz kılavuzlarını kontrol edin..
Crontab Nedir??
Vaktinizi yönetmek konusunda ciddiyseniz, muhtemelen bir tür takviminiz var Bu 4 Linux Takvim Uygulaması ile Zamanınızı Düzenleyin Bu 4 Linux Takvim Uygulaması ile Zamanınızı Düzenleyin Hala bir masaüstü takvim uygulaması kullanmak mantıklı mı? Bunu, özellikle senkronize edilmiş herhangi bir cihazdaki etkinliklere erişmeyi sağlamak için düşünüyoruz. Bu Linux takvim uygulamaları özellikle kullanışlıdır. - Bir uygulama veya en azından bir kağıt parçası. Crontab, bilgisayarınızın takvimine çok benzer. Zamanlanmış görevler hakkında bilgiyi tutar ve hangi saatte çalıştırılacağını cron'a söyler..
Aslında, birkaç crontab sisteminizde. Her kullanıcının root (yönetici) dahil olmak üzere kendi crontab'ı vardır. Kullanıcı crontab'ları / Var / spool / cron / crontabs /
. crontab -l
komutu geçerli kullanıcı için crontab dosyasını listeler. Kök crontab'ı ile kontrol edebilirsiniz. sudo crontab -l
.
Ayrıca, sistem crontab dosyası var / Etc / crontab'ın
sistem genelinde görevler için kullanılır. Genellikle, içine yerleştirilen çalıştırılabilir, kök ait komut dosyaları biçimini alırlar. /etc/cron.hourly/
, /etc/cron.daily/
, /etc/cron.weekly/
, ve /etc/cron.monthly/
klasörler ve bazı dağıtımlarda /etc/cron.d/
Klasör de. Genel olarak konuşursak, çoğu zaman yüklü uygulamalar tarafından otomatik olarak oluşturulduğundan, bu görevlerle uğraşmamanız gerekir..
Cron ile Görevler Nasıl Zamanlanır
Kulağa basit geliyor: görevleri zamanlamak için onları crontab'ınıza eklemeniz yeterli. Crontab özel bir konfigürasyon dosyası olduğundan, manuel olarak düzenlemeniz önerilmez. Bunun yerine, crontab -e
Komut. Kök veya diğer kullanıcıların crontab'larını düzenlemek için, komutu yönetici ayrıcalıklarıyla çalıştırın ve -u seçeneğinden sonra kullanıcı adlarını ekleyin:
sudo crontab -u root -e
sudo crontab -u kullanıcı adı -e
Crontab dosyasının iki bölümü vardır. İlki otomatik olarak ayarlanan ortam değişkenlerini içerir. PATH, HOME ve SHELL değişkenlerini güvenle değiştirebilir ve MAIL değişkenini değiştirebilirsiniz..
Dosyanın ikinci kısmı asıl “masa saati” zamanlanmış görevlerinizle. Her görev, aşağıdaki değerleri temsil eden sütunlarla birlikte tabloda bir satır (satır) kaplar:
İşleri başarıyla zamanlamak için, crontab sözdizimi hakkında biraz bilgi sahibi olmanız gerekir:
- Sayıların tamsayılar (tam sayılar) olması gerekir ve sütunlardan herhangi birinde yıldız işaretini (*) joker karakter olarak kullanabilirsiniz. “her dakika / gün / ay… ”.
- İçinde “Ayın günü” sütununda, belirtilen tarihte oluşmayan bir tarih belirlememeye dikkat edin. “Ay” sütun (örneğin, 30 Şubat).
- Her ikisi de “Ay” ve “Haftanın günü” sütunlar sırasıyla aylar ve günler için kısa adları kabul eder ve büyük / küçük harf duyarlı değildir.
- İçinde “Haftanın günü” sütun, hem 0 hem de 7 Pazar için duruyor. “Saat” sütun gerektirir “Askeri zaman” (24-saat) formatı, ancak 24 sayısını kullanamazsınız - bunun yerine 0, sabahın 12'sidir. Bunun nedeni, dakika, saat ve haftanın gününün değerlerinin 1 yerine 0'da başlamasıdır..
- Saniye desteklenmez, bu nedenle belirli bir saniyede bir görev zamanlayamazsınız.
Yapabilecekleriniz, kısa çizgi (14-22 altında “Saatler” Görevi saat 2'den itibaren sürekli olarak çalıştıracak. 10: 00'a kadar) veya virgülle ayrılmış bir liste (1,3,5 altında “Haftanın günü” görevi pazartesi, çarşamba ve cuma günleri yürütecek).
Bu sırada, basamak değerleri, eğik çizgi (/) ile temsil edilir ve bunlar bir aralık içindeki atlama miktarını gösterir; örneğin, 3-20 / 3 altında “Saatler” Görevi her üç saatte 3: 00'den 8: 00'a kadar yürütecek. Bu, her X saatte bir görevleri tekrarlamak istediğinizde kullanışlıdır, çünkü bir yıldız işareti ve bir adım (* / X) birleştirebilirsiniz. Numaraları kullandığınız sürece aralıkları listelerle ve adımlarla aralıkları birleştirebilirsiniz. Diğer bir deyişle, gibi kombinasyonlar “Ocak-mar” veya “Sal, Cum-Paz” izin verilmez.
Alternatif olarak, her sütun için bir değer ayarlamak yerine, sadece satırın başında @ hafta, @ yıl, @ ay, ya da @ saat, ardından bir komut yazabilirsiniz. Bu şekilde planlanmışsa, görevler mümkün olan ilk durumda çalışacak, bu yüzden @ haftaya haftanın ilk günü gece yarısında çalışacak. Sistem yeniden başlatıldığında hemen bir görev çalıştırmak istiyorsanız, @reboot komutunu kullanın..
Bu örnekte, her gün 08:20 ve 20:20 saatlerinde bir yedekleme planladık. Duvar kağıdı her üç günde bir 19: 00'da otomatik olarak değişir ve bir senaryo yeni podcast'leri kontrol eder ama endişelenmeyin - Linux için hemen hemen her modern müzik çalar bir podcatcher olarak görev yapabilir. Seçeneklere bir göz atalım. Her pazartesi saat 10: 20 ve 20: 20'de. 25 Mart için bir doğum günü hatırlatması ayarlanmış ve belirtilen süre içinde her 30 dakikada bir çalışır. Son olarak, bir komut dosyası e-postayı 8 ile 20 arasında her 15 dakikada bir, yalnızca iş günlerinde kontrol eder. Crontab'ınızı sütunlar arasındaki boşluklarla ve sekmelerle düzenlemekte özgürsünüz, ancak onların içine girmeyin (virgüller, kısa çizgiler ve eğik çizgiler arasına boşluk koymayın).
Tüm bu sesler çok karmaşıksa, endişelenmeyin - her zaman internete güvenebilirsiniz. Crontab Generator, Crontab.guru ve Corntab gibi araçlar, herhangi bir crontab sözdizimini bilmeden cron işleri oluşturmanıza yardımcı olur. İşin ne zaman çalıştırılacağını size gösterir ve sık kullanılan ifadeler için şablonlar sağlar. Crontab.guru, grubun en iyisidir çünkü crontab sözdizimini canlı olarak test etmenize izin verir, böylece değişikliklerin programı nasıl etkileyeceğini hemen görebilirsiniz..
Cron İşlerinin Yürütülüp Yapılmadığını Kontrol Etme
Cron'un arka planda sessizce çalışması ve görevlerinizle ilgilenirken rahatsız edilmeden çalışmanıza izin vermesi gerekiyor. Ama gerçekten çalıştığından nasıl emin olabilirsin??
Cron'un dahili bir e-posta bildirim özelliği vardır, ancak bu en azından basit bir yerel posta sunucusu kurmayı gerektirir. Bir E-posta Sunucusu Nasıl Çalışır? [Teknoloji Açıklaması] Bir E-posta Sunucusu Nasıl Çalışır? [Teknoloji Açıklaması] Her e-postanın arkasında, e-postaları internet üzerinden iten e-posta sunucusu adı verilen güçlü bir motor bulunur. . Pek çok ev kullanıcısı bunu yapılandırmaya istekli değildir ve pek çok dağıtım varsayılan olarak sağlamaz (örneğin, Ubuntu bunu yapmaz). Cron'u kontrol etmenin en hızlı yolu, bu komutu kullanarak sistem günlüğünü taramaktır:
cat / var / log / syslog | grep -i cron
-İ seçeneği sorgumuzu büyük / küçük harfe duyarsız hale getirir. Cron'un bir yerde kendi günlük dosyasına sahip olması mümkün / Var / log /
, bu yüzden bu komutun yararlı sonuçlar verememesi durumunda oraya bakın..
Belirli bir cron işinin çıktısını kaydetmeniz gerekirse, onu bir dosyaya yönlendirebilirsiniz. Çalıştırmak istediğiniz komuttan sonra, dosya yolunu ve adını crontab'ınızın son sütununa girin:
30 * * * * / usr / bin / yourcommand> /home/username/logfile.txt
Tek bir> sembolü kullanmak, komut her çalıştırıldığında dosyanın üzerine yazacaktır. Bunu önlemek için, bunun yerine >> kullanın - çıktıyı mevcut dosyaya ekler..
Ya Cron Çalışmıyorsa?
Bazı görevler eklediniz, sistem günlüklerini kontrol ettiniz ve olması gerektiği gibi çalışmadıklarını fark ettiniz. Sorunu gidermeye çalışırken göz önünde bulundurmanız gereken ve dikkat etmeniz gereken bazı noktalar:.
Cron servisi çalışıyor mu?
Bildiğiniz gibi, cron arka plan programı arka planda çalışıyor olmalıdır. Bunun gerçekten böyle olduğundan emin ol. Hizmetin adı crond veya sadece cron'dur..
Systemd kullanarak yapılan dağıtımlar için:
systemctl durum cronu
Upstart kullanan dağıtımlar için:
hizmet cron durumu
Dağıtımınız kullanıyorsa “eski” System V init yaklaşımı, aşağıdakileri içeren tüm servisleri listeler:
initctl listesi
ve cron listelenip listelenmediğine bakın.
Bir crontab dosyasına sahip olmana bile izin var mı?
Kontrol et /vb
adlandırılmış dosyalar için klasör cron.allow
ve cron.deny
. Ubuntu'da, ikisi de bulunmamalıdır, yani tüm kullanıcıların cron işlerini yönetmesine izin verilir. Ancak, varsa cron.allow
dosya, kullanıcı adınızı içermelidir. Tersine, eğer cron.deny
dosya var, kullanıcı adın içinde olmamalı. Terketmek cron.deny
boş dosya, yalnızca root ve içerisinde listelenen kullanıcılar anlamına gelir. cron.allow
crontab dosyalarına sahip olabilir.
Değişkenleriniz doğru ayarlandı mı?
Crontab, SHELL değişkeninizi otomatik olarak ayarlar. / Bin / sh
. Bununla birlikte, seçtiğiniz kabuğunuz balık ise 7 Sebep Neden Balık Kabuğunu Takmalısınız? 7 Sebep Neden Balık Kabuğunu Takmalısınız? Linux terminalinizin çalışma şeklini beğenmediniz mi? Neden yeni bir kabuk kurmuyorsun? Bu tür bir kabuk, sıradan olması gereken ama yapmaması gereken özellikleri sunan balıktır. Hadi bir bakalım. veya bash, SHELL değişkenini değiştirmelisiniz. Benzer şekilde, PATH değişkeni, varsayılan olarak yalnızca birkaç dizin içerir. Burası crontab'ın Linux komutlarını aradığı yerdir. Eğer cron işin başarısız olursa, bunun nedeni crontab'ın çalışmadığıdır. “görmek” kullandığın komut. Bunu önlemek için, PATH değişkenine komutları içeren dizinleri virgüllerle ayırarak ekleyin:
PATH = / opt / myapp / bin: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin / sbin: / bin
Bunu crontab'ınızda düzenlemek istemiyorsanız, bu değişkenleri çalıştırmak istediğiniz komut dosyasında cron işi olarak tanımlayabilirsiniz..
Crontab'ınız biçimlendirme noktasında mı??
Crontab sözdizimi tam olarak düzgün yelken değildir. Daha önce belirtilen çevrimiçi araçlarla doğrulasanız bile, küçük bir hata cron'un işlerinizi yürütmesini engelleyebilir. Dikkatli olun:
- crontab dosyasının sonuna boş bir satır ekleyin
- Komutunuz içeriyorsa,% işaretini ters eğik çizgiyle kaçın
- # ile başlayan satırları yorumlarınızı yazın. Yorumları, ortam değişkenleriyle aynı satıra veya cron job komutlarının yanına yazmayın..
Terminali Gerçekten Kullanmanız Gerekiyor mu??
Kesinlikle hayır. KDE kullanıcıları cron işlerini KCron ile programlayabilir. Sistem Ayarları> Görev Zamanlayıcı modülü. KCron, sadece birkaç fare tıklamasıyla her şeyi seçip düzenlemenizi sağlayan basit bir arayüzle, kullanmak bir zevktir.
GNOME'u tercih ederseniz, GNOME Takvimi tam size göre. Arayüz, beklendiği gibi, biraz farklı olmasına rağmen, yaklaşım benzerdir. İnce ayarlı değişiklikler için gelişmiş bir mod sunar ve görevleri doğrudan yönetebileceğiniz bir panel uygulamasıyla birlikte gelir.
Crontab-UI ve Minicron gibi diğer çözümlerin farkında olmalısınız. Birden fazla makineyi ve cron işini yöneten kullanıcılar için daha uygundurlar ve en havalı özelliklerinden biri web tabanlı arayüzdür..
Cron Alternatifleri Var mı??
Cron hemen hemen Linux için standart görev zamanlayıcısı olsa da, Gnome Schedule ile Linux'ta Zamanlama ve Otomasyon Programlama Gnome Schedule ile Linux'ta Zamanlama ve Otomasyon Programlama Gnome Schedule ile kesinlikle tek değil. At komutu, özel yapılandırma dosyaları olmadan doğrudan komut satırından programlanabilen hızlı ve bir defalık işler için mükemmeldir. Daha fazlasına ihtiyacınız olursa, bağımlılık kavramını ortaya çıkaran GNUbatch vardır. GNUbatch ile her iş için özel koşullar ayarlayabilir veya zamanlanmış bir işi öncekine bağlı olarak yapabilirsiniz. Benzer bir şey sistem zamanlayıcıları ile elde edilebilir. Yapılandırmak cron'dan daha az pratik olmasına rağmen, sistem zamanlayıcıları bir bilgisayar kapalıyken bir işin zamanlamasını kaçırıp kaçırmadığını hatırlar ve bir dahaki açılışında çalıştırır.
Bu, cron'un tek başına yapamayacağı bir şey. Bu nedenle, sürekli çalışan sunucular ve bilgisayarlar için uygundur, ancak bilgisayar kapalıyken planlanmış bir işi yürütmez. Anakron devreye giriyor. Teknik olarak bir değil “alternatif” veya cron için bir yedek. Bunun yerine, anacron cron'u tamamlar ve onunla birlikte kullanılması gerekir; bu, Ubuntu ve Ubuntu tabanlı ürünler de dahil olmak üzere birçok Linux dağıtımında geçerlidir. Anacron, bir görev en son ne zaman yürütüldüğünü kaydeder ve sistem kapatıldığında kaçırılan durumlar olup olmadığını kontrol eder. Bilgisayarı yeniden açtığınızda bunları çalıştırır, ancak her görev günde yalnızca bir kez gerçekleştirilebilir.
Fcron gibi bazı cron sürümleri varsayılan olarak anacron'un özelliklerini sunar. İleri düzey kullanıcılar, temel cron işlevlerinde birçok iyileştirme getiren Hcron veya SuperCron'a bakmak isteyebilir, ancak yönetimi biraz zor olabilir..
Ya sen? Dijital görevlerinizi nasıl düzenliyorsunuz? Linux'ta hangi görevleri programlıyorsunuz? Yorumlarda cron kullanmak için öykülerinizi ve ipuçlarınızı paylaşın.
Image Credit: Shutterstock ile Gonzalo Aragon tarafından program panosu