====== Fouiller rapidement dans les logs système ======
tail -n 100 /var/log/syslog
====== Les paquets suivants ont été conservés ======
sudo apt full-upgrade
====== Copie CP ======
Copier tout en conservant les droits, owner, propriétés, etc :
cp -rp /path /dest
l’option « p » de CP, permet de Conserver le propriétaire, le groupe, les permissions d’accès.
====== Copie RSYNC ======
sudo rsync -av --stats --progress --delete --exclude "/dossier_exclu1" --exclude "/dossier_exclu2" /SOURCE /DESTINATION
====== Voir la taille d’un repertoire avec une profondeur de 3 ======
du -ha --time --max-depth=2 /home/
====== Les 50 plus gros répertoires de /var/www ======
du -hs /var/www/* | sort -rh | head -50
https://www.it-connect.fr/comment-rechercher-les-fichiers-et-dossiers-volumineux-sous-linux/
====== Connaitre le UUID d’une partition ou d’un disque ======
sudo blkid
====== Rechercher (find) ======
Rechercher (find) à partir du répertoire courant (.) sans inclure les sous-répertoires (-maxdepth 1) tous les fichiers classiques (-type f) de l’utilisateur vandit (-user vandit) « créé » (dernière modification du statut) il y a plus de 30*24h (Lorsque find calcule le nombre de période de 24 heures la partie fractionnelle est ignorée. Ainsi, pour correspondre à -ctime +1, un fichier doit avoir au moins deux jours)(-ctime +29) et supprimer les fichiers trouvés (-exec rm {} \;)
find . -maxdepth 1 -type f -user vandit -ctime +29 -exec rm {} \;
D’abord on exécute la commande sans le RM pour vérifier, puis on ajoute le « -exec rm {} \; »
\\
Exemple pour virer les dumps mysql de plus d’un an :
find /var/backups/mysql/sql* -type f -ctime +365 -exec rm {} \;
====== rsync via un port ssh différent ======
rsync -avz -e "ssh -p $portNumber" user@remoteip:/path/to/files/ /local/path/
https://doc.ubuntu-fr.org/tutoriel/sauvegarder_home_avec_rsync
rsync -rltgoDvp --del --ignore-errors --force --progress /home/votre_identité/ /mnt/SAV/
Fusion des 2 :
rsync -rltgoDvp --del --ignore-errors --force --progress -e "ssh -p $portNumber" user@remoteip:/path/to/files/ /local/path/
====== The following packages have been kept back ======
Si après un « apt-get update && apt-get upgrade » on obtient : The following packages have been kept back
Il faut lancer :
sudo apt-get --with-new-pkgs upgrade
Ou si ça ne marche pas (moins bien) :
sudo apt-get install
Ou plus risqué :
sudo apt-get dist-upgrade
https://askubuntu.com/questions/601/the-following-packages-have-been-kept-back-why-and-how-do-i-solve-it
====== Bashrc et bash_history à modifier ======
TODO à rédiger mais intéressant :
https://forum.ubuntu-fr.org/viewtopic.php?id=2066230
#15
#23
nano /etc/bash.bashrc
j'ai ajouté :
export HISTSIZE=100000
export HISTFILESIZE=100000
ensuite pour pas delog/relog j'ai fait :
exec $SHELL
et maintenant : echo $HISTFILESIZE et echo $HISTSIZE répondent bien 100000
====== Nano et les sélections ======
Pour sélectionner tout le texte d'un fichier lorsque vous utilisez nano, faites ceci :
* Appuyez sur Alt+\ pour aller au début du fichier
* Appuyez sur Ctrl+6 pour définir un marqueur
* Enfin, appuyez sur Alt+/ pour aller à la fin du fichier (alt + shift + / pour un clavier azerty)
* En bonus : pour couper rapidement tout le texte à partir du curseur, vous pouvez utiliser Alt+t.
====== Faire un diff entre 2 répertoires ======
diff -qrs /dir/A /dir/B
Compares the directories:
* -q quietly (i.e. no differences are printed, it only reports that files differ),
* -r recursively (complete trees with all subdirectories),
* -s reporting identical files.
====== Trouver tous les fichiers contenant une chaine de caractère dans une arborescence de répertoire ======
grep -rnw '/path' -e 'la chaine de texte à chercher'
-r or -R is recursive,
-n is line number, and
-w stands for match the whole word.
-l (lower-case L) can be added to just give the file name of matching files.
-e is the pattern used during the search
====== Trouver des fichiers avec find dans une arborescence de répertoire ======
===== Les fichiers .db =====
find /path -name '*.db'
find /path/ -type d -name "log" -exec find {} -name "*.log" ! -newermt '2025-10-31' -print \;
===== Les fichiers .log plus anciens que novembre 2025 =====
find /path -type f -name "*.log" ! -newermt "2025-11-01"
Si on veut les conserver dans une archive :
find /path -type f -name "*.log" ! -newermt "2025-11-01" -print0 | tar -czvf nom_de_larchive_$(date +%Y%m%d).tar.gz --null -T -
Si on veut les supprimer :
find /path -type f -name "*.log" ! -newermt "2025-11-01" -delete
===== Les répertoires nommés "log" vides =====
find /path -type d -name "log" -exec find {} -mindepth 1 -type d -empty -print \;
Remplacer "print" par "delete" dans la commande pour les supprimer après vérification
====== Mettre à jour PrivateBin sans supprimer les données utilisateurs ======
Faire un backup du fichier de config !
Ensuite supprimer l'appli en excluant le dossier data :
find /path/privatebin/* -maxdepth 0 ! -name data -print0 | xargs -0 rm -rf
Télécharger et extraire les sources :
wget https://github.com/PrivateBin/PrivateBin/archive/refs/tags/2.0.3.tar.gz
tar xzf 2.0.3.tar.gz --strip-components=1 -C /path/privatebin/
Repartir du fichier /cg/conf.sample.php et réintégrer la config du backup.
Remettre les droits pour apache :
chown -R www-data:www-data /path/privatebin/