SSH
Example RSYNC aller et retour avec chown et chmod
rsync local -> serveur rsync -avz --delete --chown="user:group" --chmod="D2755,F644" --rsync-path="sudo rsync" -e "ssh -p654" /users/toto/ user@1.2.3.4:/home/toto/ rsync serveur -> local rsync -avz --delete --no-owner --no-group --no-perms --rsync-path="sudo rsync" -e "ssh -p654" user@1.2.3.4:/home/toto/ /users/toto/
Linux version noyau
uname -sr uname -a cat /etc/issue cat /etc/*-release lsb_release -ds
Sendmail
cd /var/spool/mqueue sendmail -bp send mail mail -s "message" -F "adresse1@etc, adresse2@etc" -r "Un nom<une@email.com>" $EMAIL
Compter
compter le nombre de fichiers dans un répertoire:
find /dossier/path/etc -maxdepth 1 -type f | wc -l
compter le nombre de fichiers dans un répertoire selon son extension
find /dossier/path/etc -name '*.MOV' -type f -printf '.' | wc -c
Trouver
trouver les chemins des fichiers recherchés
find /volume1/video/perso/2017 -name '*.MOV' -type f
recherche:
find /home/rep/ \( -name '*.ai' \)
recherche et supprime
Effacer les fichiers .DS_Store et Thumbs.db d’un système Linux
find /home/ -name .DS_Store -exec rm -f {} \;
Rechercher dans un fichier (XXX est un mot ou une expression régulière)
cat /var/log/syslog | grep XXX cat /var/log/syslog | grep XXX | more cat /var/log/syslog | grep XXX > resultat.txt
Afficher les dernières lignes d’un fichier
tail /var/log/syslog
Afficher en live (en temps réel) un fichier (ctrl-c pour sortir)
tail -f /var/log/syslog
Afficher le contenu d’un fichier (on affiche les logs principaux, faites ctrl-c pour stopper !)
cat lefichier.txt zcat /var/log/syslog.1.gz
Chercher un fichier :
find -name "*.log" find -name "*.log" | more
find / -name fichier.ini grep -Rl "quelques chose" .
sudo
sudo su -u root
Concaténer
concatener des fichiers js ou css echo | cat fichier1.css fichier2.css fichierfull.css > site.css
log
#Recherche en live tail -f /var/log/fichier.log #recherche simple grep -R "untruc" /var/log/* #cherche les 20 dernieres lignes avec un mot dans un log grep -r "unbound" /var/log/fichier.log | tail -n 20 # exclusion (-v) grep -r "untruc" /var/log/* | grep -v motàexclure # -r recursive, -i insensible à la "casse", -l n'affiche pas tous les résultats, seulement le nom des fichiers grep -r -i -l 'untruc' /var/log/ #zgrep pour les fichiers compressés compris
Alias
ls -l Afficher les informations de manière détaillée. ls -a Afficher les fichiers cachés. ls -h Afficher la taille des fichiers de facon lisible. ls -r Tri inversé. ls -t Trier les fichiers par date du plus récent au plus ancien. ls -S Trier par taille décroissante. ls -la Afficher tous les fichiers y compris les fichiers cachés. ls -lhS Afficher les informations des fichiers, avec des tailles lisibles le tout ordonné du plus grand au plus petit. créer raccourci: ln -s 'chemin_de_l_element_visé' 'nom_effectif_du_lien' ex: ln -s /usr/local/php53/bin/php /usr/local/bin/php53
Copie
copie entre 2 serveurs sans mot de passe
Copie entre 2 serveurs sans mot de passe: générer la clé : ssh-keygen -t dsa
Ensuite, pour copier la clé sur l'ordinateur distant :
ssh root@server 'cat >> /root/.ssh/authorized_keys' < ~/.ssh/id_dsa.pub
pour serveur dédié ovh :
ssh user@ip 'cat >> /home/user/.ssh/authorized_keys2' < /home/userlocal/.ssh/id_dsa.pub
Compression
#Compresser un dossier : tar -zcvf fichier.tar.gz /home/repertoire #decompresser tar gz : tar zxvf fichier.tar.gz
Historique
#Supprimer l'historique ssh: history -c
Taille
#taille repertoire du -sh repertoire #taille des partitions df -h #etat de la mémoire free -m
Reset
Vider un fichier echo "" > auth.log
Transfert
transfert de fichiers: scp root@00.00.00.00:/home/fichier.ext . scp fichier.ext root@00.00.00.00:/home/ avec port scp -P XXXX user@ip:/rep/fichier.txt . == synchronisation de fichiers == rsync -avz -e ssh /users/personne/.../ root@168.192.1.23:/home/../ sync -avz -e ssh root@168.192.1.23:/home/../ /users/personne/.../ rsync -av /Users/poste2/Desktop/Joomla_1/ /users/personne/.../ option: --exclude="/*/.local" (exclure un répertoire) rsync -avz -e ssh root@168.192.1.23:/home/../ /users/personne/.../ exclure répertoire --exclude='/config/'
Répertoire
Comparer répertoire
diff -rb /rep1/ /rep2/
supprimer un repertoire
rm -rf portail
modifier attributs
#modif proprio chown -R personne:groupe rep (-R recursif)
#modif des droits chmod -R 755 repertoire
MySql
serveur bin # mysql -p mysql> GRANT ALL PRIVILEGES ON bdd_personne.* TO personne@'%' IDENTIFIED BY 'testdb'; Query OK, 0 rows affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON bdd.* TO personne @'%' IDENTIFIED BY 'testdb'; MYSQL DUMP /usr/bin/mysqldump --default-character-set=latin1 --host=localhost --user=nom --password=pass bdd > /home/bdd.sql se placer ds le repertoire Bin de mysql commande: mysql -u root -p db < db.dmp
service mail
/etc/init.d/spamd stop /etc/init.d/clamd stop /etc/init.d/qmail stop /etc/init.d/spamd start /etc/init.d/clamd start /etc/init.d/qmail start
Fichiers
Lire les fichiers
ls -la ls -lah humain ls -lac date de création
Rendre exécutable un fichier ssh
chmod u+x fichier.sh
- Cette commande ajoute les droits d'exécution au propriétaire du fichier. Pour rendre le fichier exécutable pour le groupe utilisateur il faut lancer :
chmod g+x fichier.sh
- Pour rendre le script exécutable pour les utilisateurs autres :
chmod o+x fichier.sh
- Et enfin pour autoriser tout le monde :
chmod ugo+x fichier.sh
Autres
Répertoire WEB
#répertoire www doit être en 705. #En revanche les autres répertoires doivent être en 755 et les fichiers en 644. #Voici deux comandes via le ssh pour mettre des répertoires en 755 et tes fichiers en 644. cd /home/TEST/www/ #répertoires en 705 avec cette commande : find . -type d -print | xargs chmod 705 #fichiers en 644 : find . -type f -print0 | xargs -0 -n1 chmod 644
Executer une page web
#!/bin/bash wget http://site.com/page.html 1> /dev/null 2> /dev/null
Extraire dossier ou fichier d'une archive
- Pour tirer un fichier
tar --extract --file=mon_archive.tar file1
c'est à dire extraire le fichier file1 de l'archive mon_archive.tar. Si nous devons extraire à partir d'une archive gzippée:
tar xzf mon_achive_zippee.tgz file2
maintenant si on veux extraire un répertoire:
tar xzf grosse_archive.tar.gz --wildcards --no-anchored 'home/zydoon/public_html*'
vous pouvez utiliser le t au lieu du x pour vous exercer.
Profile
#relancer /etc/profile/ source /etc/profile
Paquets
mettre à jour un paquet :
sudo apt update (mise à jour de la liste des paquets) sudo apt list --upgradable (pour voir ce qui doit être mis à jour) sudo apt install --only-upgrade firefox
listes des paquets
dpkg --list
le paquet est-il à jour
apt-cache policy openvpn
Réseaux
voir les ip du reseaux et le mac adress
Dans la console: arp
Dns diagnostique
apt-get install dnsutils
La commande dig
Pour voir les DNS en cours
cat /etc/resolv.conf
table de routage (IPv4/IPv6)
ip route
Vérification des interfaces
ifconfig
Afficher les connexions
0-Lister les ports ouverts et les services réseaux en écoute sur son serveur Linux grâce à netstat. netstat -lntup 1-Lister tous les ports : netstat -a 2-Lister tous les ports TCP : netstat -at 3-Lister tous les ports UDP : netstat -au 4-Lister tous les ports en écoute : netstat -l 5-Lister uniquement les ports TCP en écoutes : netstat -lt 6-Lister uniquement les ports UDP en écoutes : netstat -lu 7-Afficher les statistique de tous les ports : netstat -s 8-Affichier les statistique des Port TCP : netstat -st 9-Affichier les statistique des Port UDP : netstat -su 10-Affiche le nom du programme et le PID associé : Cette commande est très utile lorsque vous souhaitez connaitre quel programme est exécuté sur un port particulier. netstat -p 11-Afficher directement les IP et pas de résolution de nom : Pour afficher toutes les connexions et tous les ports en écoute mais n’affiche que les adresses IP sans la résolutions des noms. netstat -an 12-Affiche le numéro d’identification des processus (PID) associé à chaque connexion : netstat -o 13-Afficher la table de routage IPV4 et IP6 : netstat -r 14-Affichage à un interval de temps régulier en seconde : netstat -t “temps en seconde” ( Exemple : netstat -t 5 ) netstat -t 5
Scanner les ports
nmap est un outil d'exploration réseau permettant de découvir les machines présentes ainsi que les services qu'elles utilisent. apt-get install nmap 1. Lister les machines à explorer Cette commande va se contenter de lister les machines que nmap explorerait sur le réseau en question. La valeur 24 indique que les trois premières valeurs sont fixes et que seule la dernière va varier. nmap -sL 192.168.0.1/24 2. Scanner les machines du réseau On va maintenant passer la même commande en faisant un ping sur chaque machine. nmap -sP 192.168.0.1/24 3. Scanner une machine nmap 192.168.0.72 4. Scanner une machine plus en détail On peut en plus activer la détection du système d'exploitation et des versions dans la commande précédente an ajoutant le flag -A: nmap -A 192.168.0.72 Si maintenant on scanne la Box Internet: nmap -A 192.168.0.254 5. Accélérer le scan de la machine Le précédent scan ayant duré 17mn, on va essayer d'obtenir un résultat plus rapidement en changeant la politique de temporisation de nmap: nmap -A -T5 192.168.0.254
0. Commandes utiles