[SOLVED] Conky monitor aktualizacji?

Jesteś nowy na forum? Przeczytaj ...

Home Fora Forum wsparcia Oprogramowanie [SOLVED] Conky monitor aktualizacji?

Oglądasz 13 posty - 1 do 13 (z 13 ogółem)
  • Autor
    Posty
  • #2944
    Avatar photoLinGruby
    Forumowicz
    #!/bin/bash
    
    logfile="/var/log/upgrades.log"
    lista() {
    	pacman -Syyu | grep 'Inst'
    }
    
    pacman -Syyu 2>&1 >/dev/null
    if [ -z "$(lista)" ]; then
    	echo "Brak Pakietów" > $logfile
    else
    	echo "$(lista | sed '/^Inst/!d;{s/Inst\ //;s/\ .*//}')" > $logfile
    fi
    
    

    Mam taki sobie skrypt i on w cronie sprawdza co 10 min czy są jakieś pakiety do aktualizacji.

    Ale o ile wykonuje swoje zadanie to w conky nic się nie pokazuje tylko „Brak Pakietów” a zobaczyłem to dopiero dziś że nie robi listy pakietów.

    Wpis w conky wygląda tak

    ${execi 20 cat /var/log/upgrades.log}

    Wiem że jest taki

    ${execpi 10800 checkupdates | wc -l}

    ale on pokazuje tylko ilość pakietów, ale nie o to mi chodzi.

    Może ktoś ma lub może przerobić ten mój skrypt bo mnie się koncepcje wyczerpały

    ( ͡° ͜ʖ ͡°) Linux User #592024
    System: Host: arch-bspwm Kernel: 4.19.5.ll6-1-lingruby-git+ x86_64 (64 bit gcc: 8.2.1)
    Desktop: mwm info: polybar wm: bspwm 0.9.5 dm: lightdm Distro: Arch Linux
    Machine: Device: laptop System: Acer product: Aspire E5-571

    #2951
    Avatar photonapcok
    Administrator

    checkupdates jeśli nie przekierujesz jego wyjścia do wc -l pokaże ci listę dostępnych aktualizacji, a nie zliczy ich ilość. Kombinowałbym więc z checkupdates.

    Mam spore wątpliwości co do użycia przez ciebie pacman -Syyu w tym skrypcie :P

    Co on ma w ogóle robić? Instalować automatycznie aktualizacje czy pokazywać listę dostępnych aktualizacji?
    Użycie komendy pacman -Syyu sugeruje, że ma instalować (opcja -u)
    Choć użycie jej w skrypcie wydaje się też bez sensu, ponieważ tak komenda wymaga interakcji ze strony użytkownika.

    #2956
    jack
    Forumowicz

    Kiedyś używałem tego na Debianie sid i działało, oczywiście trzeba zmienić polecenia:
    link

    #2957
    Avatar photonapcok
    Administrator

    Kiedyś używałem tego na Debianie sid i działało, oczywiście trzeba zmienić polecenia:
    link

    Wydaje mi się, że skrypt jest właśnie stamtąd wzięty, ale np. polecenie sed zupełnie niezmienione, więc to nie może działać.

    #2959
    Avatar photonapcok
    Administrator

    Wklejam przykładowe wyjście z polecenia checkupdates

    [napcok@manjaro ~]$ checkupdates
    manjaro-icons 20161222-1 -> 20170220-1
    manjaro-iso-profiles-community 17.0rc1-1 -> 17.0rc1-2

    Jak widać sed-a można sobie zupełnie darować, ewentualnie jeśli potrzebne same nazwy paczek można wyciąć za pomocą cut
    Coś jak:
    echo "manjaro-icons 20161222-1 -> 20170220-1" |cut -d" " -f1

    #2971
    Avatar photoLinGruby
    Forumowicz

    Wpis w conky teraz wygląda tak

    
    ${execi 20 checkupdates | wc -l}
    
    

    ale skrypt tak

    #!/bin/bash
    
    pacman -Sc --noconfirm && pacman-mirrors -g -m rank && pacman -Syyu
    
    

    wpis w crontab nadal wygląda jak wyglądał

    
    10,20,30,40,50,59 * * * * root /usr/local/bin/upgrade
    
    

    i wszystko działa

    ( ͡° ͜ʖ ͡°) Linux User #592024
    System: Host: arch-bspwm Kernel: 4.19.5.ll6-1-lingruby-git+ x86_64 (64 bit gcc: 8.2.1)
    Desktop: mwm info: polybar wm: bspwm 0.9.5 dm: lightdm Distro: Arch Linux
    Machine: Device: laptop System: Acer product: Aspire E5-571

    #2972
    Avatar photonapcok
    Administrator

    Sorry, ale wykonywanie sprawdzania ilości dostępnych aktualizacji checkupdates | wc -l co 20 sekund brzmi jak jakiś żart.
    Podobnie jak wykonywanie co 10 minut(?) z crona serii poleceń:
    1. pacman -Sc –no-confirm – czyli usuwanie odinstalowanych pakietów z cache
    2. pacman-mirrors -g -m rank – tworzenie rankingu mirrorów
    3. pacman -Syyu – aktualizacja systemu (która i tak nie ma możliwości być wykonana w tej postaci ze skryptu – jeśli już naprawdę chciałbyś to robić to potrzebne też –no-confirm)

    Choć w sumie jak masz roota to kto ci zabroni.

    Co do Conky to taki wpis nie pokazuje z pewnością nazw paczek (tak jak pierwotnie chciałeś), a tylko ich ilość.
    Polecenie w cronie nie ma żadnego wpływu na to co wyświetlane jest w Conky.

    #2973
    pavbaranov
    Forumowicz

    Się tak wtącę (jak zwykle zresztą). Automatyzacja tego typu działań nie ma sensu z wyjątkiem ewentualnego sprawdzania czy nie pojawiły się jakieś paczki do aktualizacji. Dlaczego?
    1. pacman -Sc – fakt, usunie z cache wersje pakietów, które nie są już dostępne w repozytorium. Ale… Jest to sensowne wyłącznie wówczas, jeśli stwierdzimy, że zaktualizowana wersja paczki nie powoduje jakichś kłopotów i nie musimy przywrócić starej paczki. Jest to tym bardziej istotne w Manjaro, które nie ma ABS. Fakt, potrzeba taka zachodzi sporadycznie, niemniej jednak lepiej na zimne dmuchać.
    2. Używanie -no-confirm (chyba winno być –noconfirm) generalnie nie jest nigdy dobrym pomysłem. Przez przypadek można wylać dziecko z kąpielą.
    3. Aktualizację systemu najlepiej jest przeprowadzać tak, by była widoczna dla użytkownika, albowiem podczas niej dostajemy użyteczne informacje, które niekiedy wymagają dodatkowych działań użytkownika (np. paczki optdepends).

    #2974
    Deleted
    Member

    pavbaranov, nic dodać, nic ująć! Parę dni temu osmo „zgubił” zakładkę Kontakty po aktualizacji. Na szczęście miałem starszą wersję i sobie przywróciłem. Gdybym wyczyścił repozytorium, to bym…
    Dziwne mają ludzie pomysły. Oj, dziwne! A później czyta się na forach żale, że system nie wstaje wcale.

    #2975
    pavbaranov
    Forumowicz

    @diatryba: Tego typu rzeczy są oczywiście do obejścia. Można zbudować pakiet lokalnie z PKGBUILDu, odpowiednio go dostosowując (no, ale budowa takieg FF czy LO trwa długawo delikatnie mówiąc). W przypadku paczek, które są bezpośrednio przeniesione z Archa można też stosować ALA z seblu.net. Szkoda jedynie, że Manjaro dość mocno kryje się z tym, co przenosi bezpośrednio, a w czym macza palce ;)

    #2976
    Deleted
    Member

    pavbaranov, odkąd używam Manjaro, czytam uważnie Twoje rady, porady i przestrogi. Uważam, że warto z nich korzystać, bo uczą przezorności i samodzielności w unikaniu i rozwiązywaniu ewentualnych kłopotów z systemem. Wielu, szczególnie „majsterkowiczów” bez doświadczenia, robi systemowi „kuku” poprzez wymyślne dziwaczenia, nie myśląc o konsekwencjach.
    Ale mają prawo, hehe! Ich system.
    Instalacja i aktualizacja w konsoli powinna być podstawą dla zwłaszcza początkujących użytkowników! Trzeba widzieć (uważnie czytać!) i rozumnie reagować na wyświetlane komunikaty! To zapewnia jakiś margines bezpieczeństwa.
    A, co do „obejścia”, to prawie wszystko da się „obejść”. Pozostaje pytanie, czy te „polne ścieżki” nie doprowadzą do bagien?

    #2977
    pavbaranov
    Forumowicz

    A, co do „obejścia”, to prawie wszystko da się „obejść”. Pozostaje pytanie, czy te „polne ścieżki” nie doprowadzą do bagien?

    Te, które proponowałem wyżej, nie są jakimiś „obejściami” w Archu. Obejściem jest w Manjaro ze względu na brak ABS/ALU.
    Repozytorium ALU (seblu) są to systematycznie robione zrzuty z oficjalnego repozytorium Archa – tu nie ma żadnych obejść, ot, archiwum.
    A budowa z PKGBUILD – to zawsze po prostu budowa.
    Jednak jak piszesz – warto się najpierw zastanowić nad konsekwencjami tego, co się robi, a dopiero potem – jeśli było się roztropnym i dalej są problemy – szukać rozwiązań.

    #3583
    Avatar photoLinGruby
    Forumowicz

    ostatecznie wygląda to tak i dział i robi swoją robotę
    skrypt odpalany co 10 min

    
    #!/bin/sh
    
    pacman -Sc --noconfirm && pacman -Syu && pacman -Qu | wc -l
    
    

    a w conky wygląda tak

    
    ${color}Dostępne aktualizacje:   ${color1}${execi 20 pacman -Qu | wc -l}
    ${color}Zainstalowane pakiety:   ${color1}${execi 20 pacman -Q | wc -l}
    ${color}Ostatnia aktualizacja:   ${color1}${execi 20 grep "starting full system upgrade" /var/log/pacman.log | tail -n1| cut --bytes=2-17}
    
    

    z czego ostatnia linia pokazuje czy skrypt wykonał swoje zadanie

    ot wszystko działa i tak ma być

    ( ͡° ͜ʖ ͡°) Linux User #592024
    System: Host: arch-bspwm Kernel: 4.19.5.ll6-1-lingruby-git+ x86_64 (64 bit gcc: 8.2.1)
    Desktop: mwm info: polybar wm: bspwm 0.9.5 dm: lightdm Distro: Arch Linux
    Machine: Device: laptop System: Acer product: Aspire E5-571

Oglądasz 13 posty - 1 do 13 (z 13 ogółem)
  • Musisz być zalogowany aby odpowiedzieć w tym wątku.