Hier eine kurze Anleitung, wie das cloop ins eigene Netzwerk integriert werden kann und welche Konfigurationen vorgenommen werden müssen/können um es an die eigene Umgebung anzupassen.
Ein Client muss folgende Voraussetzungen erfüllen, damit das cloop integriert werden kann:
Es gibt zwei Möglichkeiten, das cloop zu integrieren:
Als root folgende zwei Befehle in der Konsole ausführen:
# wget http://cloop.linuxmuster.net/install_trusty_client # bash install_trusty_client
Dann werden (wenn nicht schon vorhanden) alle notwendigen Dateien heruntergeladen und installiert.
Es sind zwischen 2GB und 3GB herunterzuladen. Das kann eine Weile dauern. Deshalb ist es sinnvoll, das Ganze in einer
screen-session zu erledigen, falls man remote arbeitet.
/etc/linuxmuster/workstations
(oder über die Schulkonsole) Rechner in die richtige Gruppe stecken (so wie die start.conf heißt) oder die start.conf.trusty714
bearbeiten und umbenennen, dass sie zu der Gruppe passt, die schon vorhanden ist.start.conf.trusty714
anpassenWenn nicht:
Editieren Sie die Datei /etc/linuxmuster-client/auth/config und ändern Sie den Wert der Variablen AUTOCOINFIGURE_LDAP auf NO
Danach führen sie folgende Befehle auf dem Client aus:
# sudo pam-auth-update --> YES --> alle anwählen --> Ok # sudo apt-get install linuxmuster-client-auth --reinstall # sudo dpkg-reconfigure linuxmuster-client-auth
Eine Detailierte Anleitung ist in diesem PDF: 01-ubuntu-14.04-ins-netz-integrieren-hib.pdf
Zur prinzipiellen Konfiguration des Linuxclients siehe: Technische Dokumentation zum Linux-Client und Ubuntu 12.04 als Client
Einen Teil dieser Konfigurationsarbeiten können graphisch mit dem Tool „Linuxmuster-Client-Config“ durchgeführt werden → lmlcc
Ändern der Passwörter für die lokalen Benutzer s.o.:
# sudo passwd <Benutzername>
# sudo apt-get update # sudo apt-get dist-upgrade
vgl. auch Doku unten: SSH - Zugriff vom Server (Passwortlos per Zertifikat)
/root/.ssh/id_dsa.pub
auf einem Musterclient an die Datei /root/.ssh/authorized_keys
anhängen…oder per universellem Postsync - Skript/home/linuxadmin
z.B.: .cache; .dconf; .rpmdb; .bash_history; .gstreamer0.10; .xsession_errors; .xsession_errors.old; .local/share/zeitgeist; ….bash_aliases, .bash_logout, .bashrc, .compiz, .config, .dmrc, .gconf, .gnome2, .gnome2_private, .local, .mozilla, .tipp10, .Xmodmap
Die folgende Dokumentation beschreibt die vorgenommenen Anpassungen, d.h. den Auslieferungszustand des Cloops.
Um Software einzubinden, die nicht in den offiziellen Repositories verfügbar ist, wurden weitere Repos hinzugefügt.
Im Default-cloop wurden viele schulrelevante Programme sowohl aus den Ubuntu-Quellen als auch aus zusätzlichen Quellen installiert. Programmpakete, die sehr umfangreich sind (z.B. Wine) oder die aus lizenzrechtlichen Gründen nicht ausgeliefert werden dürfen, wurden nicht aufgenommen.
enabled=0
in /etc/default/apport
firefox:.mozilla/firefox/4fci8bte.default chromium:.config/chromium
libreoffice:.config/libreoffice thunderbird:.thunderbird ALL:ALL
Home_auf_Server/
--Schnipp-- RSYNC_OPTIONS="--links --force --delete" --Schnapp--
# Identd initialisieren killall oidentd /usr/sbin/oidentd -u oident -g oident --reply=$USER
#Ident beenden, da sonst Dienst mit letztem User weiter läuft killall oidentd
if [ -x /usr/bin/truecrypt ]; then /usr/bin/truecrypt --dismount fi
NoDisplay=true
in /etc/xdg/linuxmuster-client-extras.desktop
linuxmuster-client-extras-setup –type login -on /usr/bin/xhost-root
SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # # ---------------------------------------- # Show server information from $HOME of user # Please uncomment to activate! # show information every minute */1 * * * * root DISPLAY=:0 /usr/bin/show-server-information # ---------------------------------------- # Shutdown this host, if user confirms GUI message # Please uncomment to activate! # shutdown at 18:00 and further every 30 min until 23:30 */30 18-23 * * * root DISPLAY=:0 /usr/bin/check-shutdown
linuxmuster-client-extras-setup –type login –on /usr/bin/setup-show-server-information
; Minütlichen Cronjob aktiviert in /etc/cron.d/linuxmuster-client-extras (s.o.)linuxmuster-client-extras-setup –type login –on /usr/bin/create-dektop-icons
* tauschen/tausch-Schule
* tauschen/tausch-Lehrer
Sind dort im Verzeichnis .Desktop Icons abgelegt (spezielle Dateien), erhalten die Benutzer zusätzliche Icons auf den Desktop. Sind es andere Dateitypen werden diese auf den Desktop kopiert. Da das Verzeichnis tauschen/tausch-Lehrer nur den Lehrern zur Verfügung steht, erhalten nur diese die Dateien aus dem Lehrertauschverzeichnis. Die Dateien aus tauschen/tausch-Schule erhalten alle Domänenbenutzer, sofern das schulweite Tauschverzeichnis nicht deaktiviert ist.
*Skript set-default-printer vorbereitet: jeden zur Gruppe lpadmin zuordnen
--Schnipp-- *;*;*;Al0000-2400;dialout,cdrom,floppy,audio,dip,video,plugdev,vboxusers,lpadmin --Schnapp--
libglib-perl libterm-readkey-perl
/dev/sda1 / ext4 errors=remount-ro 0 0 /dev/sda2 none swap sw 0 0 #/dev/sda3 /virtual ext4 defaults 0 0
--Schnipp-- # Search timelimit timelimit 5 # Bind/connect timelimit bind_timelimit 5
postlogin_trusty.sh
), welches auf dem Server im Pfad /home/samba/progs/linuxmuster-client/custom/
liegt nach erfolgtem Login –> postlogin-server-sync.desktop
[Desktop Entry] Encoding=UTF-8 Name=Postlogin_Sync Comment=Verwaltungsaufgaben vom Server aus dem Userspace Exec=sh /home/samba/progs/linuxmuster-client/custom/postlogin_trusty.sh Terminal=false Type=Application Categories= OnlyShowIn=GNOME;XFCE;KDE;Unity; NoDisplay=true
/root/.ssh/authorized_keys
auf dem Client ablegen. Vgl. z.B. http://www.linuxmuster.net/anwenderwiki:ssh:ssh-keys/etc/ssh/sshd_config
--Schnipp-- # Authentication: LoginGraceTime 120 PermitRootLogin yes StrictModes yes AllowUsers root@10.16.1.1 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys --Schnapp-- --Schnipp-- # Change to no to disable tunnelled clear text passwords PasswordAuthentication no --Schnapp--
--Schnipp-- # linuxmuster: teachers and group p_sudo may gain root priviliges %teachers ALL=(ALL) ALL %p_sudo ALL=(ALL) ALL
Bei mir läuft auf dem Server noch ein Cronjob, der die Schüler jeden Abend wieder aus dem Projekt schmeist.
---Schnipp-- disable = no --Schnapp--
Anlegen eines Hook-Scripts –> /etc/pm/sleep.d/01_disable_suspend
#!/bin/sh . "${PM_FUNCTIONS}" case "$1" in hibernate|suspend) exit 1 ;; esac
--Schnipp-- exec fstrim-all --no-model-check --Schnapp--
sudo update-pepperflashplugin-nonfree –install
# enable bash completion in interactive shells if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi fi
Hier Beispiel einer start.conf mit Windows und Ubuntu:
--Schnipp-- [LINBO] # globale Konfiguration Cache = /dev/sda6 # lokale Cache Partition <--Linbo-Cache soll ausgeblendet werden! --Schnapp-- --Schnipp-- [Partition] # Start einer Partitionsdefinition, Windows 7 auf NTFS Dev = /dev/sda1 # Device-Name der Partition (sda1 = erste Partition auf erster Platte) <-- Windows-Systempartition soll ausgebelndet werden! ... [Partition] # Start einer Partitionsdefinition, Ubuntu Dev = /dev/sda2 # Device-Name der Partition (sda2 = zweite Partition auf erster Platte) <-- Ubuntu Systempartition steht in der /etc/fstab ... [Partition] # Definition der Swappartition Dev = /dev/sda3 # Device-Name der Partition (sda3 = dritte Partition auf erster Platte) <-- Swappartition für Ubuntu steht in der /etc/fstab ... [Partition] # Erweiterte Partition Dev = /dev/sda4 # Device-Name der Partition (sda4 = vierte Partition auf erster Platte) <--spielt keine Rolle...erweiterte Partition ... [Partition] # Start einer Partitionsdefinition, Datenpartition mit NTFS Dev = /dev/sda5 # Device-Name der Partition (sda5 = fuenfte Partition auf erster Platte) <-- Datenpartition soll in diesem Beispiel nicht in Ubuntu auftauchen! ... [Partition] # Definition der Cache-Partition Dev = /dev/sda6 # Device-Name der Partition (sda6 = sechste Partition auf erster IDE- <-- Cachepartition soll in diesem Beispiel nicht in Ubuntu auftauchen! ... --Schnapp--
/etc/udev/rules.d/10-hide-devices.rules
. Pro auzublendendem Device eine Zeile der Art:KERNEL=="device von oben", ENV{UDISKS_IGNORE}="1"
…das bedeutet im Falle des Beipiels oben:
KERNEL=="sda1", ENV{UDISKS_IGNORE}="1" KERNEL=="sda5", ENV{UDISKS_IGNORE}="1" KERNEL=="sda6", ENV{UDISKS_IGNORE}="1"
sudo udevadm control --reload sudo udevadm trigger
Die Installation von Google Earth erfordert einige zusätzliche Pakete, da 32-Bit-Pakete erwartet werden, das Muster-Trusty-14.04 aber ein 64-Bit-System ist. Man geht so vor: * Anmelden als linuxadmin * Öffnen Sie http://dl.google.com/dl/earth/client/current/ und laden Sie google-earth-stable_current_i386.deb herunter. * Aktualisieren Sie das System: * apt-get update * apt-get dist-upgrade * apt-get update (das zweite mal war bei mir für den nächsten Schritt nötig) * sudo apt-get install libfontconfig1:i386 libx11-6:i386 libxrender1:i386 libxext6:i386 libgl1-mesa-glx:i386 libglu1-mesa:i386 libglib2.0-0:i386 libsm6:i386 * sudo dpkg -i google-earth-stable_current_i386.deb * sudo apt-get install -f
/usr/bin/todo-indicator-linuxmuster-helper
#!/bin/sh case $USER in linuxadmin) echo "Für lokale User gibt es nichts zu tun ;-)";; linuxuser) echo "Für lokale User gibt es nichts zu tun ;-)";; *) /usr/bin/todo-indicator /$HOME/Home_auf_Server/todo.txt esac
Name: ToDo Indicator Befehl: /usr/bin/todo-indicator-linuxmuster-helper
--Schnipp-- *;*;*;Al0000-2400;dialout,cdrom,floppy,audio,dip,video,plugdev,vboxusers --Schnapp--
Vorübergehende Lösung: T. Schmitt hat eine funktionierende italc2-Version aus den Quellen gebaut. Diese ist im Image vom 23.06.2014 enthalten und in den linuxmuster-trusty Quellen.
Benutzt man eine frühere Version des Images, in der als Workround Italc 1.0.19 enthalten war, dann kommt man folgendermaßen zu Italc2:
#sudo apt-get autoremove italc-* --purge #sudo apt-get update #sudo apt-get install italc-client italc-master
Danach muss man Italc völlig neu einrichten…das funktioniert im Detail ähnlich wie bei Italc1 jedoch gibt es nun die Italc-Management-Console, die einiges einfacher macht. Zur genannten Management-Console kommt man im Terminal mit:
sudo imc
linuxmuster-client-extras-setup –type login –on /usr/bin/ica –order 015
1. Datei /usr/bin/ica verschoben nach /usr/bin/ica.orig
2. Datei /usr/bin/ica anlegen, ausführbar machen und mit folgendem Inhalt füllen:
#!/bin/bash echo "Setze DISPLAY und starte ica" DISPLAY=:0 /usr/bin/ica.orig & exit 0
ethtool -s eth0 wol g
--Schnipp-- NETDOWN=no --Schnapp--
[ti83p] rom_file=/opt/tilem2/ti83p_1.rom state_file=/opt/tilem2/ti83p_1.sav [recent] last_model=ti83p [settings] zoom=2
libpng3:i386 libsm6:i386 (gcc-4.9-base:i386 libc6:i386 libgcc1:i386 libice6:i386 libsm6:i386 libuuid1:i386) libxi6:i386 (libx11-6:i386 libxau6:i386 libxcb1:i386 libxdmcp6:i386 libxext6:i386 libxi6:i386) libxrender1:i386 libxrandr2:i386 libxfixes3:i386 libxcuror1:i386 libxinerama1:i386 libfreetype6:i386(libfreetype6:i386 libpng12-0:i386 zlib1g:i386) libfontconfig1:i386 (libexpat1:i386 libfontconfig1:i386) libglib2.0-0:i386 (libffi6:i386 libglib2.0-0:i386 libpcre3:i386 libselinux1:i386) libstdc++6:i386( gcc-4.8-base:i386 libstdc++6:i386)
/usr/bin/tipp10
:#!/bin/bash if [ -x /$HOME/Home_auf_Server/__tauschen ]; then # wenn Unterverzeichnis __tauschen existiert, dann ist es ein Netzwerk-User cd /usr/share/tipp10 ./tipp10 /$HOME/Home_auf_Server/.tipp10 # also muss die Datenbank ins Home auf dem Server. else # ansonsten ist es ein lokaler User, also muss die Datenbank ins lokale Home. cd /usr/share/tipp10 ./tipp10 /$HOME/.tipp10 fi
#tipp10 Datenbank-Ordner anlegen if [ ! -x /$HOME/Home_auf_Server/.tipp10 ]; then mkdir /$HOME/Home_auf_Server/.tipp10 fi
/opt/GDV/Spatial_Commander
/usr/bin/spatialcommander
#!/bin/bash cd /opt/GDV/Spatial_Commander/ ./SpatialCommander
/usr/share/applications
[Desktop Entry] Encoding=UTF-8 Name=Spatial Commander Type=Application Comment=Spatial Commander Exec=/usr/bin/spatialcommander Icon=/opt/GDV/Spatial_Commander/layouts/gdv_logo.png GenericName=Spatial Commander Categories=Education Terminal=false StartupNotify=false
Debian Paket von adobe ist wohl unabhängig von der Distro
Möglichkeiten zur Installation (Mai 2014)
Paket linuxmuster-client-acroread-repo
sorgt installiert ein Repo für acroread. Danach kann in einem weiteren Schritt das Paket installiert und automatisch upgedated werden(nicht aptitude verwenden):
apt-get install acroread
[Programm] ClientIP=10.16.1.1 Port=7654 poorman=2,00 Balance Datei=~/Home_auf_Server/.balance.dat --Schnapp--
/usr/bin/greenfoot
--Schnipp-- for VMNAME in java-8-oracle java-7-oracle java-7-sun java-7-openjdk java-6-sun java-6-openjdk ; do <-- hier java-8-oracle java-7-oracle eingefügt --Schnapp--
/usr/bin/bluej
--Schnipp-- for VMNAME in java-8-oracle java-7-oracle jdk-7-oracle java-7-sun java-7-openjdk java-6-oracle java-6-sun java-6-openjdk ; do <-- hier java-8-oracle eingefügt --Schnapp--
/usr/share/menus/qstopmotion.menu
titel
in title
umbenennensudo update-menu
sudo sh /usr/share/doc/libdvdread4/install-css.sh
/usr/share/gnome-background-properties/trusty-wallpapers.xml
<wallpaper> <name>Trusty Linuxmuster</name> <filename>/usr/share/backgrounds/trusty-comic-linuxmuster.jpg</filename> <options>zoom</options> <pcolor>#000000</pcolor> <scolor>#000000</scolor> <shade_type>solid</shade_type> </wallpaper>
Die Programmbibliothek FFmpeg
ist seit Ubuntu 14.04 nicht mehr offizieller Bestandteil. Es wurde (teilweise) ersetzt durch libav
. Das Programm QStopMotion ist aber von FFmpeg abhängig und wird somit bei dessen Deinstallation auch deinstalliert. Im Default-Cloop ist für ffmpeg eine ppa-Fremdquelle in den Repos eingebunden. Aber selbst diese ist nicht mehr aktiv und führt bei „apt-get update“ schon zu Fehlermeldungen (404).
Problembeschreibung:
Die ppa-Pakete von FFmpeg aus der Fremdquelle (Jon Severinsson oder Doug McMahon) führen zum Absturz des Video-Mediaplayer Totem und auch des VLC-Mediaplayers beim Abspielen von WMV-Videodateien. Ebenso stürzt Impress ab, wenn solche Videos eingebettet werden. Auch ein Upgrade von FFmpeg mit den Quellen behob das Problem nicht.
Lösung:
Zunächst die FFmpeg-Quelle „jon-severinsson“ löschen. Falls auch die FFmpeg-ppa-Quelle „mc3man“ von „Doug McMahon“ existiert, diese ebenfalls löschen.
# rm /etc/apt/sources.list.d/jon-severinsson-ffmpeg-trusty.list # apt-get update
Dann die bisherigen Pakete vollständig deinstallieren, dabei werden auch abhängige Pakete/Programme (33 Stück) deinstalliert:
# apt-get purge ffmpeg # apt-get purge libavdevice53 libavdevice-extra-53 libavformat54 libavutil52 libswscale-extra-2
nun die Codecs/Pakete/Programme aus den offiziellen Quellen ggf. neu installieren (falls eben deinstalliert), dabei install-Reihenfolge beachten:
# apt-get install libav-tools # apt-get install gstreamer1.0-libav # apt-get install vlc openshot audacious audacious-plugins melt mplayer2 gstreamer1.0-plugins-bad devede # apt-get install handbrake guvcview audacity libquicktime2 frei0r-plugins totem libswscale-extra-2 libavutil-extra-52
Bei Problemen den vlc neu zu installieren ggf. noch vorher alle alten Pakete entfernen: „ # apt-get purge vlc*
“
Problembeschreibung:
Der Cups (1.7) vom Client kann nicht ohne weiteres mit dem cups (1.5) vom Server kommunizieren. Zwar werden die Printerqueues vom Server auf dem Client
angezeigt aber dann wirds „freezy“…das ist ein Problem mit dem cups-browsed-daemon, der seid Ubuntu 13.04 auftritt. Die Problematik entstand initial dadurch, dass Apple das cups-browsed abgekündigt hat.
Lösung
Man muss darauf achten, dass in der /etc/cups/cups-browsed.conf auf dem Client das richtige drin steht.
Hat man 12.04 auf dem Server (lml 6.0 bis 6.2) und ubuntu 12.04 bis 14.04 auf dem Client, dann sollte die Zeile in der /etc/cups/cups-browsed.conf auf dem Server diese Zeile enthalten:
BrowsePoll 10.16.1.1:631/version=1.1
Hat man aber 16.04 auf dem Client, sollte man die Versionsangabe weglassen: also das /version=1.1 Das steht hier: https://wiki.ubuntuusers.de/CUPS/ Am Ende unter Problembehebung. Also sollte die Zeile dann lauten:
BrowsePoll 10.16.1.1:631
Problembeschreibung:
Seid Ubuntu 12.10 werden im Panel nur noch spezielle (nur in Ubuntu existierende) Appindicators als Trays angezeigt und nicht mehr die normalen System-Trayicons. Leider werden diese von vielen Anwendungen noch benutzt, z.B. SSHPlus, Pykota/Drucknotifier, Wuala, Thunderbird (minimize to tray), und noch viele mehr. Dazu gibt es schon seid zwei Jahren heiße Diskussionen; s. z.B.: https://bugs.launchpad.net/ayatana-design/+bug/974480
Lösung 1
Wenn man kein Problem erkennen kann, liegt das daran, dass nach Lösung 2 von den Paketerstellern von linuxmuster.net Pakete rechtzeitig zur Verfügung gestellt werden, so dass ein upgrade von unity weiterhin funktionierende System-Trayicons liefert.
Lösung 2
Ein „eigenes“ Unity bauen, in dem Trayicons aller Anwendungen im Panel angezeigt werden. Das ist heftig! (muss nach jedem Unity-Update neu gebaut werden…ist Gott sei dank nicht oft!)
sudo apt-get install bzr build-essentials cmake compiz-dev debhelper dbus-test-runner dh-migrations, dh-translations google-mock gsettings-desktop-schemas-dev gsettings-ubuntu-schemas intltool libatk1.0-dev libbamf3-dev libboost-dev libcairo2-dev libdbus-1-dev libdbusmenu-glib-dev libdee-dev libgee-dev libgeis-dev libgl1-mesa-dri libglib2.0-dev libgnome-desktop-3-dev libgtest-dev libgtk-3-dev libido3-0.1-dev libindicator-dev libindicator3-dev libjson-glib-dev libjson-perl libnih-dbus-dev libnih-dev libnotify-dev libnux-4.0-dev libpam0g-dev libpango1.0-dev libsigc++-2.0-dev libstartup-notification0-dev libunique-dev libunity-dev libunity-misc-dev libupstart-dev libxcb-icccm4-dev libxfixes-dev libxi-dev libxpathselect-devlibzeitgeist-2.0-dev pkg-config python python-setuptools quilt xserver-xorg-video-dummy xsltproc
mkdir ~/Desktop/unity
cd ~/Desktop/unity
bzr branch lp:unity
Löschen der Zeile
bool accept = FilterTray(title.Str(), res_name.Str(), res_class.Str());
und ersetzen durch
bool accept = true;
Löschen der folgenden Zeile:
test_panel_tray.cpp
Löschen des gesamten Inhalts der Datei; die Datei selber muss aber vorhanden sein.
sudo debuild -i -us -uc -b
…das kann je nach Rechnerleistung schon an die 20-30 min dauern! Zum Schluss findet man die deb-Pakete in ~/Desktop/unity
sudo chown username:username ~/Desktop/unity/*.deb
mkdir ~/Desktop/umbau
und in Ordner wechseln: cd ~/Desktop/
dpkg –extract unity_7.1.2+14.04.20140318-0ubuntu1_amd64.deb umbau/
dpkg –control unity_7.1.2+14.04.20140318-0ubuntu1_amd64.deb umbau/DEBIAN
Package: unity Version: 7.1.2+14.04.20140318-0ubuntu1 <-- hier die Version ändern auf ...-0ubuntu2 Architecture: amd64 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Installed-Size: 6084 Depends: ... libunity-core-6.0-9 (= 7.1.2+14.04.20140318-0ubuntu1) ... <-- ACHTUNG: Abhängigkeit auch auf die Version ...-0ubuntu2 ändern --Schnapp--
dpkg –build umbau/ unity_7.1.2+14.04.20140318-0ubuntu2_amd64.deb
←- hier neue Version im Namen anpassen!sudo dpgk -i *.deb
Problem: Nach Update des Servers (und auch linuxmuster-setup –modify) kann sich kein Domänenbenutzer am Linuxclient anmelden, da die automatische LDAP-Konfiguration nicht mehr geht.
Ursache: Das Script zur automatischen Bestimmung der LDAP-Server-IP liefert falsche/keine Daten, da die Nameserver-Abfrage „host“ zusätzliche unerwartende Daten zum Mailversand liefert.
Zum Test dazu am Server oder Client ausführen:
# host server
Ausgabe (zwei Zeilen, d.h. Problem tritt auf, bei nur einer Zeile ist hier alles OK):
server.linuxmuster-net.lokal has address 10.32.1.1 server.linuxmuster-net.lokal mail is handled by 10 server.linuxmuster-net.lokal.
Lösung: Im boot-Script /etc/linuxmuster-client/boot.d/01-ldap
die Zeile Nr. 21 abändern, so dass nur der Address-Eintrag angefordert wird:
... serverip=`host -t A $fqsn | awk '{print $4}'` ...