Ceci est une ancienne révision du document !
Commandes utilisables par l'administrateur AbulÉdu
Par abuladmin
- Mise à jour de votre serveur AbulÉdu 11.08 (abuledu-upgrade)
Par root
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 |
Tunnels SSH
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
Apt
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) |
Utilisateurs
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) |
AbulEdu/Nouva
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!!!) |
HST
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é. |
Giant Lock / Verrou système des HST
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 {} \;
Déployer un paquet sur tous les postes
# 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
Quand on a cassé la base de données de reprepro
Ç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 …
Certificats SSL
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
LTSP5
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) |
Imprimantes
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.
Postes clients
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/syslog | Affiche 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) |
Samba / Windows and co
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
Affecter arbitrairement un mot de passe root pour les postes clients (abuledu)
- 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)
Carte vidéo Nvidia sur poste client lourd
apt-get install nvidia-173-modaliases nvidia-glx-173 nvidia-173-kernel-source
Divers
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 |
Installer Clamav sur un serveur d'école
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/
Déployer ASEBA pour programmer les ThymioII (11.08)
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
Déployer kdenlive pour faire du montage vidéo (11.08)
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 …
modifier les timestamp en heures humaines
perl -pe 's/^\d+\.\d+/localtime($&)/e;' access.log
Scripts / Traitements par lots
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
Mémo Emacs
C-x = Control-X
M-x = Alt - X (ou Meta X)
Ecrire
- 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…)
Navigation
- 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