staging.inyokaproject.org

Terminalausgabe eines Autostart Script

Status: Ungelöst | Ubuntu-Version: Ubuntu 24.04 (Noble Numbat)
Antworten |

garnichtsoeinfach

Anmeldungsdatum:
19. Juli 2025

Beiträge: Zähle...

Hallo

Habe ein kleines Script für den ClamAV Virenscanner gebastelt das per Autostart nach Nutzeranmeldung gestartet wird.

Auch wenn es nicht existenziell wichtig unter Ubuntu ist denke ich mal schaden kann ein Virenscanner nicht.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#!/bin/bash
gnome-terminal # neues terminal öffnet sich bleibt schwarz
echo "Start"
sleep 3s
clamscan / -r  #Wenn das Script per Hand aus dem Terminal gestartet wird sehe ich ausgaben  
sigtool --info /var/lib/clamav/daily.cld 
echo ""
echo -e "\033[1;32m              ##########         Fenster schließen  ####################  \033[0;37m" 

# Endlosschleife Terminal nicht schließen
while true; do
#echo "while"
sleep 2
done

Wenn das Script aus dem Terminal gestartet wird funktioniert der Scan und die Ausgaben. I.o.

Nach der Anmeldung läuft der Scan, das anfangs geöffnete Terminal bleibt Schwarz, es kommt kein Echo und keine Ausgabe vom clamscan.

Jetzt könnte ich alles mit einer Pipe in eine Logdatei schreiben, ich möchte aber lediglich die Ausgaben im Terminal sehen das: clamav arbeitet und die sigtool Version.

PS es läuft alles mit Nutzerrechte.

Moderiert von schwarzheit:

Dem Spamfilter entrissen.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11278

Du startest das gnome-terminal aus dem Skript heraus, aber führst die Befehle nicht darin aus - wenn man mal einen Blick in die Manpage wirft (https://manpages.ubuntu.com/manpages/noble/man1/gnome-terminal.1.html), sieht man mit welchem Argument man das gnome-terminal starten muss, damit es Befehle ausführt. Aber du brauchst das eigentlich nicht mal, wenn deine .desktop-Datei für den Autostart richtig geschrieben ist - Stichwort Terminal = true - vgl. .desktop-Dateien (Abschnitt „Programmstarter“)

Marantkurz

Anmeldungsdatum:
7. September 2023

Beiträge: 941

so z.B. mit gnome-terminal

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#!/bin/bash

start() {
echo "Start"
sleep 3s
clamscan / -r
sigtool --info /var/lib/clamav/daily.cld 
echo ""
echo -e "\033[1;32m              ##########         Fenster schließen  ####################  \033[0;37m"
}

export -f start
gnome-terminal -- bash -c "start;echo '---';read x"

garnichtsoeinfach

(Themenstarter)

Anmeldungsdatum:
19. Juli 2025

Beiträge: 8

Marantkurz schrieb:

so z.B. mit gnome-terminal > start() { }}}

Super so funkionierts auch wenn ich es nicht verstehe 😎

bin zufrieden Danke sehr

garnichtsoeinfach

(Themenstarter)

Anmeldungsdatum:
19. Juli 2025

Beiträge: 8

seahawk1986 schrieb:

Terminal = true

Also das von Marantkurz passt für mich, habe noch etwas experimentiert.

Der geänderte Aufruf in Startprogramme sieht jetzt so aus

/home/Nutzername/script-log/clamAV.sh gnome-terminal =  true

Es kommt kein Terminal hoch, Scanner läuft.

Im Ordner /home/Nutzername/.config/autostart steht

[Desktop Entry]
Type=Application
Exec=/home/Nutzername/script-log/clamAV.sh gnome-terminal =  true
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[de_DE]=Virenscript
Name=Virenscript
Comment[de_DE]=
Comment=

Zum Verständnis für mich spielt es ein Rolle in welchen Verzeichnis das Script liegt?

Marantkurz

Anmeldungsdatum:
7. September 2023

Beiträge: 941

wird auch so gehen:

1
2
3
4
5
6
7
gnome-terminal -- bash -c "echo 'Start'
sleep 3s
clamscan / -r
sigtool --info /var/lib/clamav/daily.cld
echo ''
echo -e '\033[1;32m              ##########         Fenster schließen  #################### \033[0;37m'
read x"

Marantkurz

Anmeldungsdatum:
7. September 2023

Beiträge: 941

[Desktop Entry]

da fehlt ein

Terminal=true

Es sei denn gnome-terminal soll im Script kommen.

Exec=/home/Nutzername/script-log/clamAV.sh gnome-terminal = true

Nee.

[Desktop Entry]
Exec=/home/Nutzername/script-log/clamAV.sh
Terminal=true

Wie gesagt nur wenn ohne gnome-terminal gewünscht. Soll das Script so laufen wie ich postete, dann ohne Terminal=true. Verstehe nicht was das in Autostart soll. Dort kommt nur der Scriptfad rein.

edit

Bei der 2. Version von mir war ein kleiner Fehler drin:(ist raus)

echo ""
#muss
echo ''

garnichtsoeinfach

(Themenstarter)

Anmeldungsdatum:
19. Juli 2025

Beiträge: 8

Marantkurz schrieb:

[Desktop Entry]
Exec=/home/Nutzername/script-log/clamAV.sh
Terminal=true

So passts 👍 Danke dir

Marantkurz

Anmeldungsdatum:
7. September 2023

Beiträge: 941

Kommt da jetzt nicht 2* ein Terminal?

  • Das 1. von Terminal=true und

  • das 2. von gnome-terminal aus dem Script?

Wenn ja, dann kannst Du aus dem Script das gnome-terminal wieder rausnehmen. Zum Ende dann alldgs. das

read x 

noch rein, sonst schliesst sich das Terminal von allein.

garnichtsoeinfach

(Themenstarter)

Anmeldungsdatum:
19. Juli 2025

Beiträge: 8

Der Beitrag ist schon gelöst hätte da noch ein anliegen.

Der Autostart und Terminalausgabe funktioniert, ich möchte die Ausgabe noch verbessern da es etwas mühselig ist die SCAN SUMMARY des Virenscanners auf Infektion zu kontrollieren.

Deshalb soll der Text Infected files: Farbig Formatiert ausgegeben werden was mit der If Anweisung erledigt ist.

Jetzt komme ich nicht weiter, wie bekomme ich aus dem Datenstrom im Terminal das sind Zigtausend Zeilen mit der SCAN SUMMARY am Ende den Text “Infected files: 0“ in die test Variable ?

clamscan /run/udev/data/ -r

hat diese Terminalausgabe zur folge verkürzt um Tausende Zeilen

############### Virenscanner Start ################
Loading:     7s, ETA:   0s [========================>]    8.71M/8.71M sigs      
Compiling:   2s, ETA:   0s [========================>]       41/41 tasks 

weitere Tausende Zeilen  »»»»»
/run/udev/data/b7:14: OK
/run/udev/data/b7:1: OK
/run/udev/data/+module:fuse: OK
/run/udev/data/+module:configfs: OK

----------- SCAN SUMMARY -----------
Known viruses: 8708103
Engine version: 1.4.3
Scanned directories: 1
Scanned files: 421
Infected files: 0 # > darum gehts
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 11.104 sec (0 m 11 s)
Start Date: 2025:08:02 17:04:58
End Date:   2025:08:02 17:05:09
              #     Scan in Ordnung        # 
              ##########     Fenster schließen  mit Taste        ####################  
---
#!/bin/bash
start() {
echo "################ Virenscanner Start ################"
clamscan /run/udev/data/ -r

test="Infected files: 0"   # ????
if [  "Infected files: 0" = "$test"  ] ; then 
 echo -e "\033[1;32m              #     Scan in Ordnung        # \033[0;37m"; # Grün Fett ende escape Sequenz mormal 
    else   echo -e "\033[1;31m  Infektion erkannt \033[0;37m";# Rot Fett
    fi
echo -e "\033[1;32m              ##########     Fenster schließen  mit Taste        ####################  \033[0;37m" # Grün Fett ende escape Sequenz mormal 
export -f start
gnome-terminal -- bash -c "start;echo '---';read x"
read x #offen lassen bis Tasteneingabe 
Antworten |