Tüm at işlerini kaldır


32

Kullanmam gereken zamanlanmış bir atişi kaldırmak için biliyorum atrm "numjob1 numjob2"ama bunu tüm işler için yapmanın kolay bir yolu var mı?

Yanıtlar:


31

Atq adresindeki tüm işleri kaldırmak için bu komutu çalıştırabilirsiniz.

 for i in `atq | awk '{print $1}'`;do atrm $i;done

2
Bu cevabın bir varyasyonat -l | awk '{printf "%s ", $1}' | xargs atrm
Sergiy Kolodyazhnyy

10

Böyle bir şey yapabilirsin:

for i in $(atq | cut -f 1); do atrm $i; done

FreeBSD’de cut -f3ilk sütun tarihte
David Jashi

7

Bu bana kısa bir çizgi gibi görünüyor:

atrm $(atq | cut -f1)


1

İşte benim ayraçlar önler ve umarım sezgisel benim xargs sürümü

atq | cut -f 1 | xargs atrm

Ayrıca belirli işleri zaman damgası / kullanıcı kimliği ile yakalayabilir ve sonra kaldırabilirsiniz:

atq | grep "2018-10-22 16:" | cut -f 1 | xargs atrm

0

Atd'de 58 binden fazla iş vardı (birisi sunucuyu yeniden başlattı ve bir nedenden dolayı atd servisi başlatılmadı). Atrm kullanarak işleri kaldırmak çok yüksek sıra için çok acı verici.

Atd'yi durdurdum ve / var / spool / atjobs'daki tüm dizinleri ve / var / spool / atspool'daki dosyaları sildim . Benim için işe yaradı.

rm -rf /var/spool/atjobs/* ; rm /var/spool/atspool/*

Bir daha asla başlamak atdve bunun başarılı olup olmadığı hakkında hiçbir şey söylemiyorsunuz , bunun için ne Unix'in yeterli bir çözüm olacağını söylemiyorsunuz . Diğer kullanıcıların işlerinin silinmediğinden nasıl emin oldunuz?
Kusalananda

Tamam! Üzgünüm! İşlemden sonra atd başlatmanız gerekir. Benim çözümüm "SUSE Linux Enterprise Server 12" içindir. Ancak diğer dağıtımlarda da kullanılabileceğini düşünüyorum. "Man" dizinindeki bilgileri buldum. Benim durumumda, sadece root atd kullanıyor, ardından dosyaları silmek güvenliydi.
Felipe
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.