Linux komutunu kullanarak tek cron işi nasıl kaldırılır veya silinir?


39

Sitem için aşağıda listelenen cron işlerini oluşturdum ve gayet iyi çalışıyorlar. Bu PHP betiğini kullanarak tüm cron işlerini yazdırıyorum:

$cronfiles=exec('crontab -l',$output);
echo "<pre>";
print_r($output);

Hangi çıktılar:

[0] => 0 0 * * * wget php -q http://www.example.com/report_send.php
[1] => 0 0 * * * wget php -q http://www.example.com/event_reminder.php
[2] => 0 0 * * * wget php -q http://www.example.com/user_reminder.php
[3] => * * * * * wget php -q http://www.example.com/cleardata.php

Şimdi tek bir cron işini sunucumdan komut ile silmek ya da kaldırmak istiyorum. Örneğin 0 0 * * * wget php -q http://www.example.com/event_reminder.phpsunucudan " " cron işini kaldırmak istiyorum .

crontab -rTüm cron işini sunucumdan kaldıran komutu denedim , ancak belirli cron işini kaldırmak istiyorum.

Çözüm için bana yardım eder misin?

Yanıtlar:


61
  1. Crontab'a bir iş eklemek için:

    (crontab -u mobman -l ; echo "*/5 * * * * perl /home/mobman/test.pl") | crontab -u mobman -
    
  2. Bir işi crontab'dan kaldırmak için:

    crontab -u mobman -l | grep -v 'perl /home/mobman/test.pl'  | crontab -u mobman -
    
  3. Crontab'daki her şeyi kaldır:

    crontab -r
    

Hiçbir şey aldatıcı değil: -Linux'ta STDOUT!


1
Greg: Ubuntu'ya Sormaya Hoş Geldiniz! ;-) Gelecekte cevaplarınızın okunabilirliğini artırmak için düzenlemelerimi ve aynı zamanda düzenleme yardımını da inceleyebilir misiniz ... ;-)
Fabby

4
Lütfen değiştirin 1. crontab'a bir iş eklemek için (crontab -u mobman -l 2> / dev / null; echo "* / 5 * * * * perl /home/mobman/test.pl") | crontab -u mobman - (ref: stackoverflow.com/questions/4880290/… )
Yasiru G

1
@YasiruG Ben crontab -l 2 > /dev/nullsadece no crontab for <user>mevcut bir cron işi yoksa mesajı görmek istemiyorsanız gerekli olduğunu düşünüyorum . Bu arada, -u mobmanmevcut kullanıcı için cron işini eklemek istiyorsak bu seçeneğe ihtiyacımız yok .
baptx

21

Kök bilgi istemi türünden

crontab -e

Artık dosyayı düzenleyebilir ve kaldırmak istediğiniz satırı kaldırabilirsiniz. Bunu, sizden bu istemi varsa, kullanıcılar için crontab'ı düzenlemek için de kullanabilirsiniz.

Bu arada: cronjobs eklemeyi tercih ediyorum /etc/crontab. Bana biraz daha esnek geliyor.


Bu daha kolay görünüyor ve senaryo sihirbazından daha anlamlı, ama keşke daha çok sihirbaz gibi olsaydım.
Jason Sebring

Manuel değişiklikler için harika, ancak otomasyon için yukarıdaki betiği kontrol edin -
AFP_555 20:30 '

7

Kullanıcıları Görüntüle Cronjob

Waqleh Kullanıcının cronjob'ını görüntülemek için aşağıdaki sözdizimini kullanın :

crontab -u waqleh -l

Kök Kullanıcısı Görüntüle Cronjob

Sadece aşağıdaki komutu yazın:

crontab -l

Bu crontab betiğinin içeriğini listelemelidir.

Görüntüle / etc / crontab

Bir cronjob / etc / crontab dosyasından da çalıştırılabilir. Görüntülemek için şunu girin:

less /etc/crontab

Tüm cron işlerini kaldır

Yalnızca ve tüm cron işlerini durdurmak istiyorsanız, bunları tamamen kaldırabilirsiniz:

crontab -r

Bu , tüm crontab dosyasını kaldırır, burada listelenen diğer cron işleriniz varsa dikkatli olun!

Belirli cron işlerini kaldır

Cron dosyasını açın ve kaldırmak istediğiniz cron'ları silin

crontab -e

her satır bir cron işini temsil eder. Herhangi bir cronu ctrl + k tuşlarını kullanarak silebilir, sonra kaydedebilir ve çıkabilirsiniz.


1
crontab -l | grep -v 'wget php -q http://www.example.com/event_reminder.php' | crontab -

crontab -l Geçerli crontab işlerini listeler

grep -v bazı satırları filtrele

crontab - Tüm basılı materyalleri crontab dosyasına ekler.


0

crontabArgümanlar olmadan koşabilir ve yeni crontab'ı stdin ile besleyebilirsiniz.


@qeirha .. Belirli cron işini sunucumdan kaldırmak istiyorum
anumavu

@ anumavu, doğru, crontab -lzaten okudunuz , zaten olduğu gibi, işi listeden kaldırın, sonra tekrar yazın crontab.
geirha
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.