chmod

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

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:
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

du -sh repertoire (taille 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/'

supprimer un repertoire

rm -rf portail


modifier les groupe et 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

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

Autres

  • 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.

  • 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

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

Réseaux

voir les ip du reseaux et le mac adress

Dans la console: arp

Dns diagnostique

apt-get install dnsutils

La commande dig