Sada je: 10 pro 2018, 06:05.
Diskusije usko vezane uz Debian distribuciju.

Moderator/ica: Moderatori/ce

Pozdrav ekipa.
Koristim debian Stretch i u sudo crontab sam postavio da se jednom tjedno
Kod: Označi sve
apt-get update | apt-get -y upgrade
i sad kada treba npr korisničku reakciju pri restartanju servicea i programa koje zahtjevaju ručno pritiskanje (q)uit tipke mi proces stoji blokiran. Kako da to automatski riješim?
Darko
Postovi: 34
Postovi: 34
Pridružen/a: 17 ožu 2012, 09:27
Podijelio/la zahvalu: 1 puta
Primio/la zahvalu: 2 puta
Nisam tako nešto nikada probao jer je to super loša ideja na testnoj verziji (iako nije nešto pametnija ni na stable), ali apt-get -y --force-yes upgrade bi ti trebao raditi. Također, taj kron nema nikakvog smisla. | je pipe koji prebaci rezultat lijeve strane na ulaz desne (nije logičko "ili" što si vjerojatno mislio da je). Taman da je i || (logičko ili) naredba neće raditi. On će evaluirati ljevu stranu i tu stati, jer dalje nije potrebno (1 ILI X = > 1 tako da nema smisla evaluirati ništa drugo). Dakle, ti želiš:

apt-get update && apt-get -y --force-yes upgrade

&& je logička "i" operacija koja će prvo izvršiti "apt-get update", pa ako je ok onda tek apt-get -y --force-yes upgrade Da vidiš da li ti se naredba evaluira točno, odmah nakon izvšrenja ukucaj "echo $?" i rezultat mora biti 0 (nula) ako je ok (znači, inverzna je logika). --force-yes i -y nisu isto, ovo drugo će stati nad lošim idejama, dok će --force-yes provesti bilo koji upgrade, makar odmah nakon toga nepovratno uništio čitavi sustav.

Kad/ako sjebeš sustav tim kronom, nemoj kriviti mene :D
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
Moderator
Postovi: 9674
Moderator
Postovi: 9674
Pridružen/a: 07 pro 2007, 18:07
Podijelio/la zahvalu: 145 puta
Primio/la zahvalu: 254 puta
Spol: Y
OS: utuntu 17.04
Hvala. Poslušati ću savjet.
Postovi: 34
Postovi: 34
Pridružen/a: 17 ožu 2012, 09:27
Podijelio/la zahvalu: 1 puta
Primio/la zahvalu: 2 puta
pardon, da se korigiram "apt-get -y --force-yes upgrade"
Es gibt keinen Gott, kein Universum, keine menschliche Rasse, kein irdisches Leben, keinen Himmel, keine Hölle. Es ist alles ein Traum - ein grotesker und dummer Traum. Nichts existiert außer dir. Und du bist nur ein Gedanke - ein vagabundierender Gedanke, ein nutzloser Gedanke, ein heimatloser Gedanke, der verloren in der leeren Ewigkeit wandelt!
Avatar
Moderator
Postovi: 9674
Moderator
Postovi: 9674
Pridružen/a: 07 pro 2007, 18:07
Podijelio/la zahvalu: 145 puta
Primio/la zahvalu: 254 puta
Spol: Y
OS: utuntu 17.04
mozda je pametnije staviti apt-get update; apr-get -y --force-yes upgrade ili jos bolje dist-upgrade jer kad vec hoces rasturit sustav go all the way.

a ; umjesto && jer ako update faila onda nece radit upgrade, a mozda je sasvim ok da faila. i ne zaboravi sloziti neki redirect outa i erra u log, ne u null pa da bar znas kaj je krepalo ako krepa.
i nogom u guzicu je korak naprijed.
Avatar
Postovi: 536
Postovi: 536
Pridružen/a: 13 ruj 2008, 17:35
Lokacija: Koprivnica
Podijelio/la zahvalu: 0 puta
Primio/la zahvalu: 23 puta
Spol: M
OS: Arch
Zašto ne koristiš unattended upgrades koji je za to i napravljen?
https://wiki.debian.org/UnattendedUpgrades

A greške u stvari ne treba preusmjeravati jer već postoje logovi u /var/log i za dpkg i za apt.

Ako inače imaš neki interaktivni program za kojega treba bez nadzora pritisnuti koju tipku ili nešto automatski upisati, netko je ovdje ukazao da za to postoje expect skripte. Npr.:
Kod: Označi sve
#!/usr/bin/expect -f
set timeout -1 #postavi bez timeouta, tj izlaz kad aplikacija pošalje EOF  (inače je pozitivni broj u minutama)

spawn whoami #pokreni program whoami
expect {      #očekuj znakovni izlaz od programa
 "(q)uit"       { send "q\r"; exp_continue } #ako traži da se stisne "quit", pošalji "q" i enter i nastavi dalje skenirati
 "$env(USER)"   { puts "je magare"; exp_continue } #mala šala
}

sudo apt-get install expect
Avatar
Postovi: 1840
Postovi: 1840
Pridružen/a: 16 tra 2011, 08:34
Lokacija: i grupa Film
Podijelio/la zahvalu: 45 puta
Primio/la zahvalu: 329 puta
Spol: M
OS: Mint 10 LXDE itd...

Na mreži
Trenutno korisnika/ca: / i 5 gostiju.