8 saat sonra bir komutu vermenin basit bir yolu nedir? Bu şekilde düşünebilirim:
nohup bash -c "sleep 28800 ; ./mycommand.sh" &
Daha uygun bir yolu var mı?
8 saat sonra bir komutu vermenin basit bir yolu nedir? Bu şekilde düşünebilirim:
nohup bash -c "sleep 28800 ; ./mycommand.sh" &
Daha uygun bir yolu var mı?
Yanıtlar:
at
Komutu kullanabilirsiniz . at
Daha sonra komutları yürütün. Yardımcı at
program, standart girdilerden gelen komutları okuyacak ve daha sonra yürütülmesi için bunları bir iş başında olarak gruplandırmalıdır.
Genellikle, at
Ubuntu'da varsayılan olarak kurulur, ancak yayınınız içermiyorsa, aşağıdakiler yoluyla yükleyin:
sudo apt-get install at
Daha fazla bilgi için, seçenekler, örnekler ve diğerleri, Ubuntu Manpage Deposuna bakın.
Örnek:
at now +8 hours -f ~/myscript.sh
Ayrıca, tomorrow
ya da gibi uygun kısayollar da kullanabilirsiniz noon
.
echo "tweet fore" | at teatime
Uyarı: Bu komut derhal borunun soluna gönderilir,ancak daha sonra çıkışını gösterir. Örnek ayrıca, eylemleri nasıl içine aktarabileceğinizi de gösterirat
. at -c
aşağıdaki gibi, numaralarıyla kolayca listeleyebileceğiniz zamanlanmış eylemleri inceleyebilmenizin yolu:
at -c 3
at now +8 hours -f ~/myscript.sh
at 8:00
komutu mutlak bir zamanda çalıştırmak ve batch
"bilgisayar boştaymış gibi göründüğü zaman" için vardır
teatime
4 de. Bazı nedenlerden dolayı manpages.ubuntu.com/manpages/raring/man1/at.1posix.html adresinde bahsedilmemiştir, ancak içinde man at
ve burada manpages.ubuntu.com/manpages/raring/tr/man1/at.1.html adresinde bulunur .
gpio write 8 1
ancak derhal yürütüldü.
Evet, bir cron işi ayarlayabilirsiniz.
Örneğin, şimdi saat 14:39:00 ve bugün Cuma, 30 Ağustos ise, aşağıdaki cron işini (8 saat sonra yürütülecek) crontab -e
komutunu kullanarak crontab dosyanıza ekleyebilirsiniz :
39 22 30 8 5 /path/to/mycommand.sh
Hakkında daha ayrıntılı:
crontab
Siz kaldırana kadar komut sizin tarafınızda kalacaktır . Bir yıl sonra, onu nereye koyduğunu ve niçin koyduğunu unuttuğunuzda, komutla ne yapacağınızı merak ederek başınızı tırmalamaya başlayacaksınız.
İçin Gnome tabanlı GUI kullanın cron
, at
ve benzeri:
CronHowto'nun tanıtımı, gnome-schedule
tüm çöpleri terminale yazmaktan çok daha güzel olan gui'nin kullanılmasını önermektedir (özellikle "güç" olmayan "ortalama" Ubuntu kullanıcıları * nix / bsd kullanıcıları için).
Zamanlanmış Görevleri aramak veya çalıştırmak için Unity Dash (veya diğer uygulamalar menüsünü) kullanarak çalıştırın gnome-schedule
.
Gnome tabanlı Ubuntu sistemlerinde Uygulamalar -> Sistem Araçları'ndaki Gnome Zamanlanmış görevler aracı (gnome-zamanlama paketinden) Cron kullanmaya başlamanızı isteyen grafiksel bir arayüz sağlar. Proje web sitesi http://gnome-schedule.sourceforge.net/ adresindedir ; Yazılım, Yazılım Merkezi'nden veya yazarak yüklenebilir
sudo apt-get install gnome-schedule
bir terminalde.
Kullanılması gnome-schedule
ev dizininde bir komut dosyası için, "at" yeni bir komut penceresinde bu tür kullanarak kurulacaktı:
Bir şey olduğunu öğrenmeden önce bunu yapmanın hızlı ve kirli bir yolunu buldum at
.
Senaryonun öğlen saatlerinde çalışmasını istediğini söyle:
until [[ "$(date)" =~ "12:00:" ]]; do
sleep 10
done
./mycommand.sh
Yarın öğlen koşmak istediğinizi söyleyin (bugün 24 Kasım benim için):
until [[ "$(date)" =~ "25 12:00:" ]]; do
sleep 30
done
./mycommand.sh
Güncelleme : Biraz daha iyi bir yöntem: Sadece umursadığınız sayıları test edin date +FORMAT
:
until [[ $(date +%H:%M) == 21:06 ]]; do
...
at
, cron
ya da başka herhangi gerçek zamanlayıcı uygulaması. Görev zamanlaması zor ve yeniden icat etmeniz gereken bir tekerlek değil.
at
.
at
, işlerinin yeniden başlatılmaya devam etmesi .
nohup
+ İle ilgili bir sorun mu varsleep
? Neden "uygunsuz"?