Kullanıcı crontab nerede saklanır?

216

Güncellemem, kullanıcının crontab'ını sildi. Bu, bu sene ilk kez böyle değildi ve her seferinde yeniden ortaya çıkan bir acı.

Kullanıcı için crontab'ı yedekleyebilmeyi isterdim, ancak bunun için nerede depolandığını bilmem gerekiyor.

    
sordu Oli 13.11.2012 15:26

4 cevap

277

Aslında, bu dosyaları elle ele almanız önerilmez. % Co_de% man sayfası başına:

  

Her kullanıcının kendi crontab'ı olabilir ve yine de   bunlar crontab dosyasındaki dosyalar, bunlar değil   doğrudan düzenlenmeye yöneliktir.

/var/spool/cron/crontabs altındaki dosyalar geçici / çalışma olarak kabul edilir. Bu nedenle, bir yükseltme işlemi sırasında muhtemelen silinir, ancak /var/spool paketinin yükseltme komut dosyalarına daha yakından bakılması biraz ışık tutabilir.

Yine de, cron girişlerinizi yedeklemek veya bunları ev dizininizdeki bir dosyada tutmak her zaman iyi bir uygulamadır.

Crontab dosyalarını anında oluşturmak için cron kullandığınızı varsayalım. Öyleyse, crontab -e dosyasını kullanarak crontab dosyanızın "kopyasını" alabilirsiniz. Bir dosyayı "yedekle" almak için boruya gönderin:

crontab -l > my-crontab

Sonra, benim crontab dosyasını girişler ekleyip değiştirecek şekilde düzenleyebilir ve sonra crontab’a vererek "yükleyebilirsiniz":

crontab my-crontab

Bu, aynı sözdizimini crontab -l olarak yapıyor.

    
verilen cevap roadmr 13.11.2012 16:21
45

Kullanıcı adı altındaki /var/spool/cron/crontabs klasöründe saklanır.

    
verilen cevap Manula Waidyanatha 13.11.2012 15:29
27

Sonunda, neden crontabs ve Postfix kurulumunun açılıştan sonra kırılmaya devam ettiğini öğrendim. Bu gerçekten aptal bir sebep ama ...

/var/spool tmpfs RAM sürücüsü olarak takılmıştım.

Kulağa aptalca geliyor ve öyle, ama SSD'nin ömrünü uzatmak için eski SSD-tweaks'lerden birini takip ettim. Bunu yaparken, yansımalarını düşünmeden /tmp , /var/tmp ve /var/spool değerini% co_de olarak körü körüne bağladım. % Co_de yüzdesinin tmpfs veya /var/spool gibi olduğunu ve yalnızca oturumun süresi için yararlı olduğunu düşündüm. Açıkçası hatalıydım.

    
verilen cevap Oli 30.05.2013 15:20
10

Sisteminizdeki tüm kullanıcıların tüm cron işlerini listelemek için:

for user in $(cut -f1 -d: /etc/passwd)
do
  echo $user
  crontab -u $user -l
done

Sorununuza bir alternatif, bunları cron.d klasörüne yerleştirmek ve örnek olarak cron başına uygun kullanıcıyı belirtmek olacaktır:

00 01 * * * user /home/user/user-script.sh
    
verilen cevap pl1nk 28.03.2013 13:39

Etiketlerdeki diğer soruları oku