Komut dosyasından cron'a satır ekleme


Yanıtlar:


49

Satırı şu andaki kullanıcıların crontab'ının en altına şu şekilde ekleyebilirsin:

#!/bin/bash

line="* * * * * /path/to/command"
(crontab -u userhere -l; echo "$line" ) | crontab -u userhere -

+1 cuzunla beni yendin (test ederken bir komut dosyası hatası yaptım: D). Eklemeniz gereken 1 şey olduğunu düşünüyorum: sistemin crondeğiştirildiği bildirilmelidir .
Rinzwind

Bunun cevap almak için bir yarış olacağını biliyordum! Haklısın ki bu cronun bildirilmesi gerekiyor. Bu nedenle komutu sadece crontab'ın sonuna ekleyemezsiniz. Yukarıdaki betiğin işe yaradığını ve cron'un komutu çalıştırmaya başladığını test ettim.
Richard Holloway,

13
Oh ve sanırım bu crontabkullanıcı için henüz mevcut değilse , bunun da yanlış olduğunu düşünüyorum (?)
Rinzwind

7
Bu durumda, kullanıcıların crontab'ın bulunmadığı konusunda sizi uyarır, ancak bu durumda onu yaratacaktır. Yorumlarınızı kavrayışlı buluyorum.
Richard Holloway

3

Eğer crontab'ınızdaki bir değeri düzenlemek istiyorsanız, aşağıdaki satırlar boyunca bir şeyler yapabilirsiniz:

$ crontab -l | sed -e 's/foo/bar/' | crontab -

Açıkçası, yalnızca değiştirmek istediğiniz çizgiyle / çizgileriyle eşleştiğinden emin olmak için ikame işleminize dikkat etmeniz gerekir; Aksi takdirde hepsi (bu örnekte) foosolarak değiştirildi bars.

Bu yöntemin avantajı crontab'ın tamamını değiştirmemenizdir. (Bir balyoz yerine metaforik bir cımbız.)

Sed yerine herhangi bir düzenleme komutunu kullanabilirsiniz . Örneğin, eğer böyle görünen bir çizgiyi rötuşlamak için ed kullanmak istiyorsanız :

2 * * * * /sbin/flitch --days 3,4 > /var/log/flitch.out 2>&1

Diyelim ki bu satır birçok satır arasında veya farklı sistemlerde güncellemek için farklı crontab'larınız var ve yalnızca satırınızın içinde terim flitchbulunan tek satır olacağını biliyorsunuz .

Şuna benzeyebilir:

$ cat /tmp/edscript
/flitch
s/3/9/
w
q
$ crontab -l > /tmp/out && ed /tmp/out < /tmp/edscript && crontab - < /tmp/out
$ crontab -l
...
2 * * 1 * /sbin/flitch --days 9,4 > /var/log/flitch.out 2>&1
...

Şimdi zaman o neredeyse% 100'ünü itiraf etmeliyim sed yapacak ed yapacak, ancak İsviçre çakısı üzerinde ekstra bir araca sahip olmak her zaman iyidir. ^. ^

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.