11.08:administrateur:accueil

Ceci est une ancienne révision du document !


Commandes utilisables par l'administrateur AbulÉdu

A visiter: http://commandlinefu.com

commande commentaire
mysqlcheck -o -c -A -u root -p optimise toutes les bases mysql d'un serveur
du -h utilisation disque (-h human readable)
du -hs utilisation disque synthétique
du -hs * utilisation disque synthétique détaillée sur les répertoires de premier niveau
dmraid -x supprime tout système raid étrange (installation serveur)
pmap_dump affiche la liste des ports utilisés par NFS pour vérifier si le port 631 (par ex) n'est pas déjà utilisé
netstat -lp –inet affiche la liste des ports réseaux ouverts et les logiciels qui y sont attachés
fail2ban-client set ssh addignoreip 88.170.241.195 Ajoute l'ip en question (ip ryxeo freebox) dans la liste des IP qui ne sont pas blacklistées au bout de 3 erreurs SSH
fail2ban-client set ssh addignoreip 109.190.93.185 Ajoute l'ip en question (ip ryxeo ovhbox) dans la liste des IP qui ne sont pas blacklistées au bout de 3 erreurs SSH
fail2ban-client status ssh affiche l'état du filtrage fail2ban ssh
fsck.ext3 -c -y /dev/sda1 check disque en console à partir d'un Live CD
ethtool eth1 affiche les informations de la carte réseau (link up, câble branché etc.)
arp | sort Affiche la liste des machines connectées au serveur (modulo le délais de rafraîchissement du cache ARP)
nmap -sP 192.168.0.0/24 | grep Host Affiche la liste des machines connectées au serveur, remplacez 192.168.0.0 par l'adresse ip de base du réseau

Un peu en vrac, commentaires à améliorer

commande commentaire
ssh xxx.dip.abuledu.net -L post_surmonpc:ip_locale:port_local Ouvre un port sur mon poste et le redirige
ssh xxx.dip.abuledu.net -L 8080:wifi-01:80 permet d'aller sur l'interface de gestion de la borne wifi avec http://localhost:8080/
ssh xxx.dip.abuledu.net -L 8080:servecole:8082 permet d'aller sur l'interface d'administration
ssh xxx.dip.abuledu.net -L 8080:imprimante-01:80 permet d'aller sur l'interface de gestion de l'imprimante
ssh xxx.dip.abuledu.net -L 8080:switch-01:80 permet d'aller sur l'interface de gestion du switch

Tunnel inverse: * note rapide: ssh -R 21547:localhost:22 user@mon-serveur.org

Remarque : la troisième commande redirige le port 8082 de servecole sur le port 8080 de l'utilisateur. Quand l'utilisateur saisira l'adresse

 localhost:8080 

c'est donc l'interface webadmin de servecole qui s'ouvrira. Ne pas oublier en fin d'intervention de fermer le tunnel ssh en tapant logout

commande commentaire
apt-cache search ryxeo-winapps cherche sur les dépots un paquet contenant “ryxeo-winapps”
apt-cache search <accent-circonflexe>ryxeo-winapps cherche sur les dépots un paquet commençant par “ryxeo-winapps”
gpg -abs -o Release.gpg Release Signer le fichier Release (pratique si on fait un miroir d'un ppa par exemple)
commande commentaire
sudo mod user –login son_login –add-group “Domain Admins” Ajoute l'utilisateur administrateur domaine Windows
dpkg-reconfigure horizon-profiles-education Recréations des groupes enseignant et eleve en cas de suppression
redmine #1711 Correction du bug de la 11.08 quand un utilisateur était membre d'un groupe et ne pouvait plus devenir “responsable” du groupe
getent passwd | grep /home/utilisateurs lister les utilisateurs
getent group | grep resp- liste les responsables de classes
add user –firstname=tom –lastname=pouce –profile=utilisateurs –skel=/usr/share/skels/users/04-adulte crée l'utilisateur tom.pouce avec le profil 04-adulte
chk group scandocs -b -e créé le lien symbolique (raccourci) vers le dossier scandocs pour tous les membres de ce groupe (le -b pour batch, automatique et le -e pour étendu, vérification des liens)
commande commentaire
purge-unused-kernels.sh Supprime les anciens noyaux
DNS1=80.10.246.2 DNS2=80.10.246.129 /etc/ppp/ip-up.d/horizon-0bind-forwarders-up Configure les DNSet relance BIND (remplacer les IP des serveurs DNS!!!)
commande commentaire
horizon-reconfigure lance tous les scripts postinst des paquets abuledu* et horizon*
horizon-computers-images-add copie les images maquettes génériques d'une clé usb, disque usb ou CD/DVD vers le serveur pour qu'elles soient ensuite déployables via webadmin. Dans le cas d'une clé usb ou disque externe il faut que la partition soit de type ext3 ou ntfs et porte le label (étiquette) abuleduaddons
horizon-computers-images-update actualise les maquettes génériques présentes sur le serveur et uniquement les génériques. Pour un serveur qui n'aurait pas du tout de maquettes générique de déploiement il faut juste créer le répertoire avec le bon nom et ensuite lancer la commande de mise à jour, exemple “mkdir /home/machines/groups/default/imagegeneric-clientlourd-abuledu-1108/”
horizon-cleanup-system lancée la nuit pour nettoyer le système (vieux fichiers)
horizon-external-backup.sh lance le backup externe vers un disque usb qui a une partition “abuleduprobackup”
horizon-ldap-backup.sh sauvegarde la base LDAP, lancé tous les jours la nuit
horizon-mirror-backup.sh lance la duplication des diques durs, fichier de configuration /etc/abuledu/backup.conf, horizon-mirror-backup.sh -f -v pour la 1ere fois
horizon-mirror-nas-rsync-backup.sh sauvegarde vers un serveur rsync (nas) exemple synology a la MFR de Loudéac. -v pour avoir les infos de lancement. Editer le fichier pour avoir les paramètres de configuration à ajouter dans le fichier backup.conf
horizon-nas-cifs-backup.sh sauvegarde vers un serveur NAS en utilisant un montage CIFS -v pour avoir les infos de lancement. Editer le fichier pour avoir les paramètres de configuration à ajouter dans le fichier backup.conf
horizon-netinfo affiche en console si les cartes réseaux sont connectées ou pas, permet de détecter les cartes eth0/eth1 (nouveau, en cours de dev)
horizon-rebuild-mail-aliases lancé la nuit et reconstruit les alias mails
horizon-recensement “remonte” à ryxéo les informations statistiques du serveur (nombre de postes clients, comptes utilisateurs etc.) automatisé une fois par mois
horizon-remotebackup sauvegarde les fichiers de conf sur le serveur de backup @ryxeo (cf contrat de maintenance)
horizon-session-cleanup lancé à chaque fermeture de session (TX) pour supprimer les processus résidents ou qui ne sont pas fermés proprement
horizon-smbpassword interface gtk permettant à tout un chacun de changer son mot de passe, doit se trouver normalement dans applications / accessoires / modifier son mot de passe abuledu (à tester)
horizon-upgrade-cache tache système lancée chaque nuit pour mettre en cache la mise à jour et éviter qu'elle ne dure trop longtemps lorsque l'utilisateur la déclenche (bétaen cours de tests et recherche des effets de bords)
horizon-vampire-export exporte la base machine pour un RPIqui se partage le même parc machine mais a plusieurs serveurs
horizon-vampire-import importe la base machine pour un RPI
horizon-webadmin lance l'interface webadmin (utilisé sur 9.08.2 au 1er reboot)
horizon-who affiche la liste des utilisateurs connectés (windows,linux tx) prochainement mac ?
horizon-windows-admin-icons-update réinstalle les icônes sur le bureau windows d'abuladmin (installation.bat, wifi, etc.)
horizon-windows-applications-add copie les applications windows auto-déployées depuis une clé usb, disque usb ou CD/DVD vers le serveur pour qu'elles soient ensuite auto-déployées via webadmin. Dans le cas d'une clé usb ou disque externe il faut que la partition soit de type ext3 ou ntfs et porte le label (étiquette) abuleduaddons
horizon-windows-applications-update fait une mise à jour du dépôt local des applications windows auto-déployées par rapport au serveur central de ryxéo (abandonné au profit des ryxeo-winapps paquet deb)
horizon-windows-printers-update déploie l'imprimante par défaut sur l'ensemble du parc des postes windows qui ont lancés le installation.bat. Utilise les drivers postscript standard de windows et ne permet donc pas d'utiliser les fonctions avancées des imprimantes.
horizon-windows-profile-cleanup nettoie le profil windows d'un utilisateur qui doit être passé en paramètre, exemple “horizon-windows-profile-cleanup eric.seigne”. Attention, l'utilisateur ne doit pas être connecté au moment où ce script est lancé.

Lorsqu'on a affaire à un erreur de type

Can't acquire giant lock. You probably have another horizon-{getent,add,modify,delete,check} tool already running : wait for it to finish, or last execution didn't finish cleanly : check in your ~/.horizon directory and delete the file « giant.lock » (Original error was: giant lockfile still present, can't acquire lock after timeout !).

Et qu'on est sûr de ne pas avoir d'autre commande HST en arrière plan (dans un screen par exemple) il faut aller supprimer manuellement ce “giant lock” … le hic c'est qu'il est créé par l'utilisateur qui lance la commande sudo.

Le plus simple et systématique pour nettoyer “tous” les giant lock possibles:

find /home/abecmd/ /root/ /var/lib/webadmin/ -name giant.lock -exec rm {} \;
# Copier le paquet
sudo cp $paquet.deb /var/cache/apt/archives/
 
# Mettre à jour l'index
sudo horizon-apt-download-pc.sh
 
# Vérifier que le paquet a bien été intégré
cd /home/webs/intranet/horizon-apt  
find | grep episcope
 
# Intégrer le paquet dans la prochaine vague de MAJ
cd /home/machines/groups/default/horizon-apt/applications.add
touch $nomPaquet
 
------- Exemple arborescence -------
root@servecole /home/machines/groups/default/horizon-apt/applications.add ☠ ls -al
total 8
drwxr-xr-x 2 root root 4096 2014-12-08 15:07 .
drwxr-xr-x 4 root root 4096 2014-12-10 14:27 ..
-rw-r--r-- 1 root root    0 2014-08-08 13:07 abuledu-desktop-pc
-rw-r--r-- 1 root root    0 2014-12-10 14:27 abuledu-pc
-rw-r--r-- 1 root root    0 2014-09-15 18:16 adobereader-fra
-rw-r--r-- 1 root root    0 2014-02-07 19:39 horizon-desktop-pc
-rw-r--r-- 1 root root    0 2014-08-08 13:07 horizon-pc
-rw-r--r-- 1 root root    0 2014-02-04 00:29 horizon-profiles-education
-rw-r--r-- 1 root root    0 2014-12-08 15:07 x11vnc
-------
 
# Forcer tous les postes à se mettre à jour au prochain reboot
horizon-computers-force-upgrade-on-next-boot

Ça peut arriver quand on fait des manip manuelles comme décrite ci-dessus, on doit donc ensuite rattraper à la main l'état de la base de données de reprepro (le système qui créé l'arborescence debian/pool horizon-apt local du serveur abuledu)

Exemple du problème:

Skipping inclusion of 'abuledu-episcope' '1.4.0~ryxeo12~revno61~lucid1' in 'lucid|main|i386', as it has already '1.4.0~ryxeo12~revno61~lucid1'.

Ça veut dire que reprepro n'intègre pas votre .deb vu qu'il est déjà dans sa base de données … sauf que le find vous “montre” que le paquet deb n'est pas du tout présent dans l'arborescence web pour être téléchargé par les postes clients.

root@servecole ~ ☠ reprepro -V -b /home/webs/intranet/horizon-apt/ ls abuledu-episcope
abuledu-episcope | 1.4.0~ryxeo12~revno61~lucid1 |  lucid | amd64, i386

donc on va supprimer cette référence de la base de données de reprepro

reprepro -V -b /home/webs/intranet/horizon-apt/ remove lucid abuledu-episcope

Et voilà on peut ensuite relancer l'intégration du paquet dans l'arborescence …

Un script qui fait toutes les vérifications et tests est maintenant diffusé via la mise à jour pensez donc à lancer la mise à jour du serveur

abuledu-upgrade

Une fois la mise à jour faite:

horizon-certificates_check
commande commentaire
apt-get install horizon-ltsp5 Télécharge tout le nécessaire pour LTSP5
horizon-ltsp5-build-image Construction initiale de LTSP5 (à n'utiliser qu'une fois)
horizon-ltsp5-update-image Mise à jour simple de l'image (LDM, clé SSH)
horizon-ltsp5-upgrade-image Mise à jour complète de l'image (lors d'une upgrade firefox par exemple)
commande commentaire
lpstat -t Affiche la liste des imprimantes et les infos de file d'attente etc.
lpq -P “nom_imprimante” Affiche la liste des documents en attente pour l'imprimante “nom_imprimante”
lpr -P “nom_imprimante” “nom_fichier” Imprime le fichier “nom_fichier” sur l'imprimante “nom_imprimante”
lpr -P “nom_imprimante” /usr/share/cups/data/testprint.ps Imprime la page de test de CUPS sur l'imprimante “nom_imprimante”
lpadmin -d “nom_imprimante” Désigne l'imprimante “nom_imprimante” par défaut sur le serveur
lpmove <num_job> <nom_nouvelle_imprimante> permet de re-router un job d'impression sur une autre imprimante, pratique si une imprimante est HS ou autre
lp /usr/share/horizon/default-settings/cups/testpage/adhesion.ps -d <imprimante> lance l'impression de la page de test sur 'imprimante' (nom de l'imprimante trouvée avec lpstat -t)
lp /usr/share/system-config-printer/testpage-a4.ps -d <printer> lance l'impression de la page de test (depuis un poste client par exemple)

Solution rapide pour mettre l'imprimante par défaut si wpkg ne suffit pas

Par exemple à l'école de caumont l'éventé j'ai finis par ajouter dans le fichier /home/netlogon/templates/_users.bat (c'est mal il faudrait plutôt le mettre dans le custom ou le local mais j'avais pas de temps à perdre) en début de fichier une nouvelle ligne:

cscript \\servecole\wpkg\packages\printer.vbs

Attention, a la 1ere ouverture de session ça n'est pas pris en compte, il faut ouvrir une 2° fois la session pour que l'imprimante soit bien par défaut.

Redémarrer cups si l'imprimante n'apparaît pas sur les clients lourds

/etc/init.d/cups stop

Vérifier également que le processus est bien stoppé (petit bug parfois)

ps -auxf | grep cups

Si c'est le cas un petit

kill -9 $PID

Puis redémarrer cups :

/etc/init.d/cups start

Et attendre 1 à 2 minutes que le partage s'effectue entre le serveur et le client.

commande commentaire
/etc/init.d/horizon-autoboot start/stop Relance les opérations au lancement des clients lourds (mise à jour etc.)
horizon-computers-force-upgrade-on-next-boot (sur le serveur) Permet d'incrémenter la valeur de /etc/abuledu/upgradeversion (MYUPGRADE=) et donc de déclencher la mise à jour des postes clients au boot suivant. Si vous n'avez pas la possibilité d'intervenir sur le serveur vous pouvez faire les opérations suivantes en tant que root sur le poste client:
rm -f /etc/abuledu/upgradeversion
/etc/init.d/horizon-autoboot start
host nom_du_poste Donne l'IP du poste sur le serveur
grep IP_du_poste /var/log/syslog Affiche le journal des requêtes envoyées depuis ce poste vers le serveur
tail -f /var/log/syslogAffiche les derniers messages du journal système. Permet en particulier de voir ce qui se passe quand on branche un périphérique, puisqu'au niveau noyau doivent s'afficher des lignes indiquant la détection du périphérique ET de ses partitions éventuelles, comme dans cet exemple
usb 2-1.5: new high speed USB device number 3 using ehci_hcd
sdb: sdb1
grep ocs /var/tmp/horizon-boot (Il faut être connecté en ssh sur le poste) Affiche la commande à lancer pour forcer la remontée de l'inventaire, prendre la dernière ligne retournée par la commande, supprimer le nohup et le “&” de la commande … à terme il y aura une commande horizon- pour ça … L'inventaire est donc remonté dans le serveur OCS, et pour que ça arrive dans GLPI il faut patienter (tâche planifiée nocturne)
commande commentaire
net getlocalsid Retourne le SID local du serveur, exemple S-1-5-21-3973004741-1695993968-3951286889
profiles -c S-1-5-21-565629733-1677577009-2271654767-3046 -n S-1-5-21-3973004741-1695993968-3951286889-3046 NTUSER.DAT Permet de changer le SID d'un utilisateur dans son ntuser.dat, pratique par exemple quand on réinstalle un serveur et qu'on réimporte l'annuaire LDAP sans importer “la racine” ldap, ex de eyres montcubes ou j'ai copié/collé dans le LDIFF qu'à partir des comptes utilisateurs et j'ai laissé la racine fabriquée lors de la réinstall)
net groupmap list affiche la liste des mappages des groupes windows ↔ unix
pdbedit -L lists all the user accounts present in the users database

Lors d'un pb de jonction domaine suite à une migration de serveur il peut-être utile de supprimer le groupe avec la commande

net groupmap list -> regarder le sid correspondant à "domain admins"
SIDLOCAL=`net getlocalsid | awk '{print $6}'`
net groupmap delete sid=${SIDLOCAL}-512
dpkg-reconfigure horizon-samba-default-settings
net groupmap modify ntgroup="Domain Admins" unixgroup=administrateurs type=domain

Notes diverses sur l'utilisation des commandes utiles …

net groupmap list
 
// fait apparaitre des groupes "domains admin" zarb qu'on ne peut supprimer qu'en indiquant le SID comme par ex: //
 
net groupmap delete sid=S-1-5-21-2793259672-1313947391-2857695826-15015
net groupmap delete sid=S-1-5-21-2793259672-1313947391-2857695826-512
net groupmap delete sid=S-1-5-21-2793259672-1313947391-2857695826-15011
 
// puis on peut re créer les groupmap: //
 
net groupmap add ntgroup="Domain Admins" unixgroup=administrateurs type=domain sid=${SID}-512
net groupmap list
net groupmap modify ntgroup="Domain Admins" unixgroup=administrateurs type=domain
  • Ajouter ce qui suit dans le fichier /home/machines/groups/default/horizon-apt/boot (note: fichier écrasé lors de mise à jour) Version 9.08
echo -e "azaz\nazaz" | (passwd --stdin root)
  • Version 11.08
echo -e "azaz\nazaz" | (passwd root)
apt-get install nvidia-173-modaliases nvidia-glx-173 nvidia-173-kernel-source


commande commentaire
unoconv -f pdf fic.odt transforme un fichier ooo en pdf en ligne de commande
unoconv -l -p 2002 -s localhost -v lancé sur le serveur à partir du compte qui permet d'être utilisé par la partie cliente de unoconv …
/home/archives/import_utilisateursxxxx.html Fichier contenant la liste des utilisateurs importés et leurs mdp
fonctionnement_du_mail Fonctionnement du mail dans un serveur abuledu
zcat monfichier.gz lecture log gz
zgrep chaine_recherchée monfichier.gz recherche dans un gz
Xnest :1 -query machine_distante -kb Connexion à un serveur graphique avec clavier français
apt-get install clamav
Mise à jour des définitions anti-virus /etc/init.d/clamav-freshclam restart
Scanner les fichiers du dossier personnel sudo clamscan
Scanner tous les fichiers du dossier personnel sudo clamscan -r /home/utilisateur
Scanner le disque dur entier sudo clamscan -r /

Redémarrer le firewall afin que l'utilisateur créé par Clamav ai le droit de télécharger ses mises à jour.

clamscan -r /home/ --log=/home/classes/enseignants/antivirus-20101122.log -i --move=/home/administrateurs/adminvirus/quarantaine/20101122/ --exclude-dir=/home/administrateurs/adminvirus/

Pour déployer le logiciel de gestion des robots Thymio2 la procédure est la suivante, ssh en abecmd, passage en root ET ENSUITE lancez la commande suivante sur le serveur:

wget http://aptupload.ryxeo.com/lucid-aseba/install.sh -O - | bash -

(faites un copier/coller c'est le mieux) ça télécharge aseba, l'ajoute dans le dépot local APT du serveur et forcera les clients à se mettre à jour au boot suivant …

après que le poste ait rebooté vous pouvez vérifier le déploiement d'aseba avec la commande sur le poste client cette fois ci

dpkg -l aseba

Pour déployer le logiciel kdenlive, ssh en abecmd, passage en root ET ENSUITE lancez la commande suivante sur le serveur:

wget http://aptupload.ryxeo.com/lucid-video/install.sh -O - | bash -

(faites un copier/coller c'est le mieux) ça télécharge kdenlive et les dependances, l'ajoute dans le dépot local APT du serveur et forcera les clients à se mettre à jour au boot suivant …

après que le poste ait rebooté vous pouvez vérifier le déploiement du paquet avec la commande sur le poste client cette fois ci

dpkg -l kdenlive

La version doit être 0.9.6 … si c'est la 0.7.7 c'est la version lucid et elle ne marche pas …

perl -pe 's/^\d+\.\d+/localtime($&)/e;' access.log

Attention à l'usage de ce genre de commande, faites des test avant !

Exemple de script pour remplacer une chaine de caractères dans plusieurs fichiers

#!/bin/bash
for file in %%*%%.txt
do
  echo "Traitement de $file ..."
  sed -e "s/chaine1/chaine2/g" "$file" > "$file".tmp && mv -f "$file".tmp "$file"
done 


ou

find . -name "%%*%%.txt" -type f -exec sed -i "s/chaine1/chaine2/g" {} %%\%%;

Lancer une commande d'installation de grub et de mise à jour de celui-ci sur tous les ordinateurs actuellement branchés …

for ordinateur in `arp -a | grep abuledu | cut -d " " -f1`
do
    ssh -oStrictHostKeyChecking=no root@${ordinateur} "grub-install /dev/sda && update-grub"
done

C-x = Control-X

M-x = Alt - X (ou Meta X)

  • C-space : point de marquage
  • M-w : copier
  • C-w : couper
  • C-y : coller
  • C-k : effacer la ligne après le curseur
  • C-x u : undo
  • C-_ : undo (le même ?)
  • M-l : mettre en minuscule (M-u pour les majuscules, M-c…)
  • C-x f : ouvrir un fichier
  • C-x C-s : enregistrer
  • C-x C-c : quitter emacs
  • C-x k : kill le buffer courant
  • C-x 2 : couper la fenêtre en 2 de façon horizontale
  • C-x 3 : couper la fenêtre en 2 de façon verticale (!!)
  • C-x o : passer d'une fenêtre à l'autre
  • C-x 0 : enlever la fenêtre créée
  • C-x 1 : revenir à une seule fenêtre
  • C-x C-b : lister les buffer
  • C-x b : switcher sur un autre buffe
  • 11.08/administrateur/accueil.1471639022.txt.gz
  • Dernière modification: 2016/08/19 22:37
  • de erics