Aktywne Wpisy
XYZ91 +104
#mecz Jak mam ten tag na czarnej liście, tak muszę tą frustrację gdzieś wylać. Człowiek #!$%@? jak niewolnik za marne grosze z naciskiem na #!$%@?, żeby cokolwiek koniec z koncem związać, a tu 11 chłopów nie potrafi wygrać wygranego meczu bo musla o #!$%@? wakacjach ? Ten aktor myslal, że mecz ma 45 min ? To oni nawet nie wiedzą ile trwa mecz, a gdzie tam czas doliczony ? Ja #!$%@? ..
Shatter +41
Polska dostała w łeb od Mołdawii a na wykopie w gorących 40 wpisów "Petru wygrał" - to wcale nie jest serwis dla politycznych trolli #przemyslenia #wykop #przemysleniazdupy #shitwykopsays
Poprzez cron uruchamiał skrypt (nie mam teraz do tego dostępu, więc klepię z pamieci):
0 * * * * /home/test/skrypt.sh >> log.txt 2>&1
W skrypcie tym pobieram sobie z neta archiwum tar, rozpakowuje go, i jeszcze kilka rzeczy. Na koniec uruchamiam sobie jakąś aplikację.
Aplikacja o przeuroczej nazwie dupa1 wyrzuca komunikaty na standardowe wyjście, czyli do pliku log.txt.
Problem polega na tym, że zarówno skrypt.sh jak i aplikacja dupa1 wrzuca wszystko do pliku log.txt.
Chciałbym aby do log.txt ładowane było standardowe wyjście oraz wyjście błędów ze skrypt.sh, natomiast w przypadku dupa1 wszystko leciało do /dev/null.
Dupa1 uruchamialem z przekierowaniem wszystkiego do /dev/null, ale to nie pomogło.
Ma ktoś jakiś pomysł jak to ogarnąć?
#linux #bash
Po pierwsze nie widzę sensu uruchamiania skryptu skrypt.sh w ten sposób:
0 * * * * /home/test/skrypt.sh >> log.txt 2>&1
Lepiej zrób to w taki sposób:
0 * * * * /home/test/skrypt.sh
Teraz, zmodyfikuj swój skrypt.sh:
__
#!/usr/bin/env bash
exec 3>> /tmp/log.txt
{
polecenie_pobierające_archiwum_tar;
polecenie_rozpakowujące_pobrane_archiwum_tar;
inne_polecenie;
} 1>&3 2>&1
exec 3>&-
polecenie_dupa &>/dev/null
___
To wszystko.
Ten skrypt jest trochę bardziej rozbudowany, ale w sumie twoje rozwiązanie powinno dać się zastosować.
W ciągu tygodnia postaram się przetestować.
Dzięki.
Jak pewnie zdążyłeś już zauważyć za pomocą polecenia
exec
otwieram i zamykam dodatkowy deskryptor nr 3, który jest powiązany z dopisywaniem do poliku /tmp/log.txt. Nawiasy klamrowe{ }
pozwalają na uruchomienie grupy poleceń bez odpalania ich w podpowłoce (sub-shellu) i przekierowania ich deskryptorów nr 1 (stdout)No właśnie brakowało mi zgrupowania poleceń, bo klepanie przy każdej komendzie przekierowania było by bardzo mozolne.