Table des matières
GNU/Linux, base
Source : arch wiki ; arch linux
Respecter la vie privée des autres
Réfléchir avant d'utiliser le clavier
De grands pouvoirs confèrent de grandes responsabilités.
Locale
locale -a # affiche toutes les localisations disponibles
localectl status # affiche la localisation en cours
locale -k LC_TIME # détails sur un paramètre de la localisation en cours
sudo localectl set-locale LANG=fr_FR.UTF-8 # installer la locale fr avec utf8
localectl list-locales #
celles qui peuvent être installées dnf search langpack
localectl list-keymaps ; localctl set-keymap fr # Installer un clavier type français standard
la locale est configurée dans :
'/etc/default/locale' – sur Ubuntu/Debian
'/etc/locale.conf' – sur CentOS/RHEL et fedora
Ou pour un utilisateur donné dans le '/.bash_profile'
Les différentes valeurs et variables qui peuvent être définies dans locale.conf sont données dans man locale(7)
- 1 |h locale.conf
{ LANG="en_IN.utf8" export LANG }
Pour le cas où la locale voulue n'est pas présente dans une fedora ou centos :
lang_sh_linenumbers_false_sudo_dnf_install_glibc-langpack-fr_sudo_localectl_set-keymap_fr}
Bash
Démarer le script avec #!/bin/bash
Shell par défaut : chsh ou sinon en éditant le /etc/psswd (/usr/bin/nologin - éditer nologin.txt - ou /bin/false empêchera l'utilisation du shell); dans udduser.conf on peut écrire ceci DSHELL=/bin/bash ;
Environnement
printenv liste les variables d'environnement, et printenv HOME spécifiquement le contenu de $HOME.
Ouvrir un sous-shell se fait avec 'bash'. En sortir avec CTRL+d
.''bashrc'' sert à définir les variables spécifiques au bash. .profile fait la même chose mais n'est pas spécifique à bash.
Après modif de ces fichiers faire source fichier
PS1= définition du prompt = environnmenet visible. On peut la fixer, e.g : PS1=“\u dans \w >” affichera le prompt comme suit : id_utilisateur dans rep_courant >. Actuellement PS1=[\u@\h \W]$
éfinir un environnement, e.g. japonais : alias ja=“TZ=Asia/Tokyo LC_ALL=ja_JP.UTF-8 LANG=ja_JP.UTF-8”
Paramètres
Lire des paramètres et les restituer
echo $0 ou echo $1 bref echo $n ou encore echo $*
$x : paramètre x ; $# nbre d'argument ; $@ : liste des arguments
Valeur par défaut : ${nom_var:-valeur}
Contrôler la présence d'un argument : ${nom_var:?message}
lang_sh_linenumbers_true}
La ligne 4 utilise la syntaxe qui permet de contrôler l'existence du premier argument.
Très bon article sur les variables : https://abs.traduc.org/abs-fr/ch04s04.html
Pour tester une option : if -o login; then; print yes; else; print no; fi
Cette commande teste sir l'option login est active pour le shell en cours. Avec zsh il faut un double crochet au lieu d'une simple paire de crochets. Ça permet l'utilisation de && ou || comme opérateurs logiques.
Demander une saisie
read -p 'Entrez le code de désamorçage de la bombe (vous avez 5 secondes) : ' -t 5 -n 5 nom -s
p pour le prompt ; t pour limiter le temps de saisie ; n pour limiter le nombre de caractères ; s pour ne pas afficher ce qui est saisi
calcul
let “a = 2” ; let “b = 5” ; let “c = a + b” l'addition : + ; la soustraction : - ; la multiplication : * ; la division : / ; la puissance : ** ; le modulo (renvoie le reste de la division entière) : %. Comme en c on peut contracter la commande : let “a *= 3” est équivalent a let “a = a * 3”
Tableau
Tableau=('valeur0' 'valeur1' 'valeur2')
Identification
Être par exemple apache sans entrer le mdp d'apache : sudo su –shell /bin/bash –login apache
Tests
[ expr ] ou test expr ; 0 si «expr» est vrai , et 1 si faux. [ e1 -a e2 ] vrai si e1 ET e2 sont vraies ; e1 && e2 [ e1 -o e2 ] vrai si e1 OU e2 sont vraies ; e2 [ ! e1 ] vrai si e1 fausse lang_sh_linenumbers_true_-e_f1_-a_-r_f1} [ -n chaine ] vraie si chaine est une chaîne de caractères non vide ( -z pour savoir si elle est vide) [ e1 > e2 ] vraie si e1 est supérieure à e2 (échaper le “>” ou “<” vu qu'ils ont une autre signification pour shell ; pas nécessaire avec le test étandu : . Par contre [ 32 > 200 ] est vraie car compare les deux chaînes de caractère «32» et «200», et non pas les nombre [ 32 -gt 200 ] lang_sh_linenumbers_true}
Boucle for
for fichier in $( ls /repertoire/*.sql ) ; do psql -d bdd < “${fichier}” ; done
Définir des variables du système
Globally
Most Linux distributions tell you to change or add environment variable definitions in /etc/profile or other locations. Keep in mind that there are also package-specific configuration files containing variable settings such as /etc/locale.conf. Be sure to maintain and manage the environment variables and pay attention to the numerous files that can contain environment variables. In principle, any shell script can be used for initializing environmental variables, but following traditional UNIX conventions, these statements should be only be present in some particular files. The following files should be used for defining global environment variables on your system:
''/etc/environment,'' ''/etc/profile''
and shell specific configuration files.
Each of these files has different limitations, so you should carefully select the appropriate one for your purposes.
* /etc/environment is used by the pam_env module and is shell agnostic so scripting or glob expansion cannot be used. The file only accepts variable=value pairs. See pam_env(8) and pam_env.conf(5) for details.
Global configuration files of your shell, initializes variables and runs scripts. For example Bash#Configuration files or Zsh#Startup/Shutdown files.
* /etc/profile initializes variables for login shells only. It does, however, run scripts and can be used by all Bourne shell compatible shells.
In this example, we add ~/bin directory to the PATH for respective user. To do this, just put this in your preferred global environment variable config file (/etc/profile or /etc/bash.bashrc):
lang_sh_linenumbers_true}
Per user
$(Id -u) ou pour connaître son groupe $(id -g )
Note: The dbus daemon and the user instance of systemd do not inherit any of the environment variables set in places like ~/.bashrc etc.
This means that, for example, dbus activated programs like Gnome
Files will not use them by default. See Systemd/User#Environment variables.
You do not always want to define an environment variable globally. For instance, you might want to add /home/my_user/bin to the PATH variable but do not want all other users on your system to have that in their PATH too. Local environment variables can be defined in many different files:
* ~/.pam_environment is the user specific equivalent of /etc/security/pam_env.conf [2], used by pam_env module. See pam_env(8) and pam_env.conf(5) for details.
User configuration files of your shell, for example Bash#Configuration files or Zsh#Startup/Shutdown files.
* ~/.profile is used by many shells as fallback, see wikipedia:Unix shell#Configuration files.
To add a directory to the PATH for local usage, put following in /.bash_profile export PATH=“${PATH}:/home/my_user/bin”
To update the variable, re-login or source the file:
lang_sh_linenumbers_false_source_.bash_profile}
Graphical applications
Environment variables for GUI applications can be set in xinitrc, or in xprofile when using a display manager, for example: scripts_export_guivar_value}
Per session
Sometimes even stricter definitions are required. One might want to temporarily run executables from a specific directory created without having to type the absolute path to each one, or editing shell configuration files for the short time needed to run them.
XDG
Spécification des répertoires XDG : https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
In Arch Linux, this is defined by /etc/profile, using a /etc/profile.d script.
For Debian/Ubuntu, if there's a /etc/profile.d – create a similar script inside; if such a directory does not exist – edit /etc/profile itsef. export XDG_CONFIG_HOME=“$HOME/.config”
The /etc/environment file is parsed by pam_env, which treats it as simple name=value assignments. However, it also has /etc/security/pam_env.conf, which supports variable expansion and can be used for this purpose.
You don't need to define it anywhere, unless you want to change the default.
XDG Base Directory Specification clearly says:
If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used.
So it is redundant to define it to the default value. All compliant applications will already use $HOME/.config
But, if you do want to change the default in a Debian/Ubuntu system, the best place is:
For a system-wide change, affecting all users: /etc/profile For your user only: ~/.profile I've found that it works best to set environment variables via PAM. For modern Linux distros, this means /etc/environment or $HOME/.pam_environment (see man pam_env). You can also set them in /etc/security/pam_env.conf using a special syntax. Here is how I set my XDG variables in /etc/security/pam_env.conf. lang_sh_linenumbers_false_xdg_cache_home_default_home_.xdg_cache_xdg_config_home_default_home_.xdg_config_xdg_data_home_default_home_.xdg_data_xdg_state_home_default_home_.xdg_state} Previously I would set these variables in /etc/profile.d/custom.sh. However, some applications start before that file is read. Switching to the PAM method solved the issue for multiple applications that behaved this way.
Lancer des scripts
Pour lancer systématiquement un script au démarrage du système : /etc/rc.local
Traitement de textes
Transposer une colonne en ligne :
bash -c “tr -s '\n' ' ' < ~/Documentos/Informatique/Materiel/Ordinateurs/amsi2020/logiciels_installes”
gawk
Récupérer la première colonne : gawk '{print $1}' lefichier.txt
Récup la 1ière colonne pour en faire une ligne : cat col.txt | awk 'BEGIN { FS=“:”; ORS=“ ”}{ print $1 }'
Le paramètre ORS stipule le séparateur des données, normalement un retour chariot, mais là ce sera un “ ”.
Compter les lignes @wc
Résultat : Nbre de lignes / Nbre de mots / nbre d'octets Avec l'option -m on obtient le nbre de caractères
Supprimer les doublons @uniq
uniq doublons.txt sansdoublons.txt
-c donne le nbre d'occurences
-d afficher uniquement les lignes qui ont des doublons
Couper avec @cut
cut premiereposition-secondeposition fichier.txt
cut ne gère pas les accents !
Si premiereposition n'est pas présent cut prend le premier caractère.
-d délimiteur dans le fichier ; -f le numéro du champ voulu, autre numéro de champ voulu ou alors -f -jusqu'audernierchamp
@Sed
Changer quelque chose dans un fichier texte
Remplacer “memory_limit = 128M” par “memory_limit = 512M” dans le fichier /etc/php.ini
lang_sh_linenumbers_true_sudo_sed_-i_s_memory_limit_128m_memory_limit_512m_etc_php.ini}
Ça peut aussi s'écrire sed -i “s/^mem.*128M$/g” si l'on veut supprimer la ligne il suffit de mettre «d» au lieu de “g”.
Intégration de variables
'^"${HOME}"'||' ${HOME}.fic.rsync > ${HOME}.fic.rsync.sed; } Remplacer la valeur de $HOME, dans les lignes du fichier ${HOME}.fic.rsync qui commence par la valeur de $HOME, par une chaîne vide “”, et placer le résultat dans le fichier ${HOME}.fic.rsync.sed
Caractères spéciaux
Significations particulières des caractères échappés utilisé avec @echo et @sed
\n passe à la ligne
\r renvoie le curseur en début de ligne
\t tabulation
\v tabulation verticale
\b retour en arrière
\a produit une alerte (sonore ou visuelle)
\0xx Transcode en octal le caractère dont le code ASCII est 0nn, dans lequel nn est une suite de chiffres.
Éditeur VI @VIM
https://fr.wikibooks.org/wiki/Le_syst%C3%A8me_d%27exploitation_GNU-Linux/L%27%C3%A9diteur_de_texte_vi https://openclassrooms.com/fr/courses/43538-reprenez-le-controle-a-laide-de-linux/42693-vim-lediteur-de-texte-du-programmeur la touche «inser» ou «i» pour taper du texte ; «esc» pour passer en mode commande Linux maitrisez l'administration du système p 182 Configuration : /.vimrc
Les commandes
| Commande< | Effet < |
|---|---|
| :q | pour quitter le programme |
| :w | pour enregistrer le fichier |
| :wq | enregistrer et quitter |
| :xG | aller à la ligne x |
| :vsp | fichier ouvrir un fichier dans une nouvelle cession verticale de l'affichage |
| :vsplit | séparer la fenêtre en deux verticalement, |
| :Explore | Arborescence des fichiers |
| help | |
| === Édition === | |
| Commande< | Effet < |
| :——— | :——————————————————————————- |
| v | sélectionner |
| x | efface le caractère courant ou nx n caractères |
| dd | efface la ligne courante ; dw et [x]d pour effacer un mot ou x lettres |
| d0 et d$ | supprimer le début ou la fin de la ligne |
| 0 et $ | aller respectiveent au début ou à la fin de la ligne |
| u | défaire |
| ctrl-r | refaire |
| / | chercher |
| n | résultat suivant |
| [x]yy | copier la les ligne[s] courante[s] (yank) et voir d pour les déclinaisons |
| p | coller la ligne copiée précédement lors de la commande yy ou de la commande dd |
| :r fic | Insère le contenu de fic à partir de l'endroit actuel |
| :! cmd | Exécute la commande dans le terminal. Appuyer sur entrée pour revenir dans vi |
| :r! cmd | Le résultat de la commande est inséré à l'endroit du curseur |
| :e fic | Éditer le fichier fic |
| :e# | Commute entre les divers fichiers ouverts |
| ===== Installation de logiciels ===== | |
| sudo dnf install lame* –exclude=lame-devel # pour installer tout ce qui peut aller avec lame, sauf son paquet de développement. | |
| ===== Gestion courante ===== | |
| mkdir /repparent/rep -p L'optioin -p permet de créer les répertoires parents qui n'existent pas. | |
On peut impacter une liste particulière de répertoires ou fichiers avec des {} : chmod 2775 {attic,cache,index,locks,media,meta,pages,tmp} | |
| ==== Information sur les fichiers ==== | |
| Pour parcourir l'arborescence jusqu'à fichier en visualisant les permissions de chaque feuille | |
| lang_sh_linenumbers_true_namei_-l_fichier} | |
| ==== Qui utilise quoi ? ==== | |
lsof /quoi | |
fuser -m /quoi | |
Et pour savoir quel processus utilise le fichier ps -ef | grep fichier.txt | |
| e|f|r|m} c : répertoire courant. e : programme en cours d'exécution. f : fichier ouvert. f est omis par défaut. r : répertoire racine m : fichier projeté en mémoire, ou bibliothèque partagée. } | |
| Pas trop lisible et donc selon lui : | |
| grep $item |xargs|cut -d':' -f2 |sed -e 's/[a-zA-Z]*//g' ` } | |
| NB : pour changer le propriétaire en fonction de l'utilisateur : sudo chown -R $(id -u):$(id -g) | |
| ==== Chercher @find ==== | |
| find + exec | |
Supression des mp3 : find /mediatheque/multimedia/musiques -type f -name '*.mp3' -exec bash -c 'rm “${0}”' '{}' ; | |
Changer le mod des fichiers : find .local/share/menus/ -type f -name *.desktop -exec chmod +x {} ; | |
| Supprimer certains fichiers et pas d'autres (supprime les .py dans /migrations mais pas le fichier init.py ) : find . -path “/migrations/.py” -not -name “init.py” -delete && find . -path “/migrations/*.pyc” -delete | |
| —- | |
| dim. 31 janv. 2021 11:46:28 | |
| lang_sh_linenumbers_true_sudo_-u_apache_find_nuage_-type_d_-exec_chmod_750} |
lang_sh_linenumbers_true}
Exemple simple : trouver dans $HOME les fichiers de type pdf qui font plus de 100 ko et qui ont été modifiés dans les 7 derniers jours et les copier dans /tmp/pdf , ou, les fichier odt et les archiver
mkdir /tmp/pdf ; find ${HOME} -iname “.pdf” -size +100k -mtime -7 -exec cp {} /tmp/pdf ';' -o -iname “.odt” -user denis -mtime 7 -exec tar -pczrf archives_odt.tar.gz
Gestion des droits
Ajouter soi-même à un groupe : lang_sh_linenumbers_false_sudo_usermod_-ag_groupe_whoami}
Gestion des processus
ctrl + z pour le mettre en pause
&
Il y a & en ligne de commande avec éventuellement une redirection de la sortie vers un fichier pour ne pas encombrer la console : find / -name toto.txt > sortie_find.txt
Entrées / sorties (file descriptor)
Entrée standard : stdin 0 ; redirection avec “<”
Sortie standard : stdout 1
Sortie des erreurs : stderr 2 ; Pour afficher le résultat du dernier processus echo $? = 1 si erreur on faux
redirection simple “>” ou ajout “»”
Redirection vers un «trou noir» : >/dev/null
Par exemple pour envoyer la sortie standard nulle part : 0> /dev/null (c'est la même chose que ci-dessus, mais pour le canal 0 pas la peine de préciser). On peut aussi faire 2> /tmp/erreur.log
Transmission par tuyau (pipe) ou flux entre les processus avec “|”
Ce référencer soi-même durant l'exécution : Here it is in batch script : “%0” ; Here it is in bash console : “$0”
[ ] Tuer un @processus qui utilise le port 80 : à compléter….
@nohup : Détacher le processus de la console
L'option&, bien qu'assez couramment utilisée, a ce défaut non négligeable : le processus reste attaché à la console, ce qui veut dire que si la console est fermée ou que l'utilisateur se déconnecte, le processus sera automatiquement arrêté. Si on veut que le processus continue, il faut lancer la commande via nohup. Cela s'utilise comme ceci : nohup commande Par exemple, voici ce que ça donne si on lance la copie via un nohup : $ nohup cp video.avi copie_video.avi nohup: ajout à la sortie de `nohup.out' La sortie de la commande est par défaut redirigée vers un fichiernohup.out. Aucun message ne risque donc d'apparaître dans la console. D'autre part, la commande est maintenant immunisée contre la fermeture de la console. Elle continuera de fonctionner quoi qu'il arrive (sauf si on lui envoie un kill, bien sûr). nohup est très utile par exemple lorsque vous vous connectez à un serveur. Imaginons que vous voulez lancer un programme (comme un serveur de jeu) : celui-ci s'arrêtera de fonctionner dès que vous vous serez déconnectés de la ligne de commandes du serveur. Vous n'allez pas rester connectés juste pour que le programme continue à fonctionner ! Heureusement, nohup vous préserve de ce problème. Le passer en tâche de fond après son lancement
@bg
pour le passer en tâche fond Liste des processus en arrière-plan @fg Pour passer le processus au premier plan
@jobs
Faire passer un processus en premier plan fg numéro où numéro est le numéro de processus fournit par jobs 8pas le numéro de PID mais celui d'identification de tâche d'arrière plan.
Arrêter un processus
| C ; | D ; sinon |
|---|
filtrage avec @grep
-r pour rechercher un texte dans tous les fichiers d'un répertoire, dans le cas où l'on ne sais pas dans quel fichier ce trouve ce que l'¡on cherche. -i pour ne pas tenir compte de la casse -n pour savoir à quel numéro de ligne se trouve le texte -v pour obtenir le complément de la recherche (par exemple le nombre de ligne ne contenant pas le critère de filtrage) Expressions régulières avec l'option -E
. caractère qcq $ finit par ; ^commence par ? ce qui précède est optionnel () groupe d'expressions
E.g : trouver tout ce qui commence par m et se termine par avi dans l'historique de commandes : grep “^m.*avi$” .bash_history
@supression de tous les fichiers listés dans data/deleted.files qui comprend un fichier par ligne avec des lignes de commentaire commeçant par # (voir /var/www/doku/data/deleted.files : grep -Ev '^($|#)' data/deleted.files | xargs -n 1 rm -vf
Classement avec @sort
-o fichier-résultat fichieratrier -r tri inverse -R tri aléatoire -n trier des nombres
Charge du système
Voici des commandes pour vérifier l'usage processeur, ram, espace disque :
''top ou htop'' ''cat /proc/meminfo'' ''free -m'' ''df -h'' ''lsblk''
Redirection
Diriger vers …. Pour les erreurs, il suffit de mettre un «2» devant le chevron > : commande > commande.log 2> erreursdelacommande.log Et si l'on veut les deux ensemble : 2>&1
Diriger depuis
< et « E. g : saisir des nombre et les trier tant que l'on ne tape pas “fin” sort -n « fin
Fichiers distants
@SFTP
ftp avec ssh
@scp
scp alice@src:RepSrc/f1 bob@dest:RepDst/f2
scp /home/alice/f1 bob@dest:/home/bob/f1
@Wget
Utiliser wget pour corriger une iso mal téléchargée : http://www.damnsmalllinux.org/wiki/fixing_a_corrupted_iso.html mirror2.tuxinator.org_mageia_iso_7.1_mageia-7.1-live-plasma-x86_64_mageia-7.1-live-plasma-x86_64.iso} wget -c –background pour reprendre un téléchargement interrompu et tâche de fond scp pour cp distant, mais ça ne fait pas plus que ssh
@Rsync
rsync –delete –backup-dir permet de déplacer les fichiers supprimés ( –delete) dans la source vers un répertoire spécifique sur la destination rsync -e “ssh -p port” pour passer ssh avec un port spécifique lang_sh_linenumbers_true_rsync_-ac_--log-file_tmp_rsynclog.log_--filter_-_trash_--exclude_.trash_--filter_-_cache_--filter_-_.cache_--filter_-_kulcsot_--filter_-_administration-assurance_home_denis_media_sauvegardes_home_denis_rsync_-ac_home_denis_documentos_administration-assurances-banques_run_media_denis_cryptees_administration-assurances-banques_rsync_-ac_mediatheque_multimedia_photos_run_media_denis_cryptees} Et dans ce cas le filtre d'exclusion filtre.txt : lang_sh_linenumbers_false} Format des log : https://newbedev.com/what-does-f-mean-in-rsync-logs
Accès distant
Pour sauvegarder depuis un serveur distant
Compter le temps sous linux
@date
Modifier l'affichage de la date avec un “+”. Par exemple : date “+le %a %d %B %Y à %H h %M min au %C ième s.” Il est possible de récupérer la date d'un fichier : date -r /.bashrc Définir la date : date -s
Exécuter une commande plus tard
@at
par exemple : at 00:00 01/01/01 faitessonner.sh Le format de la date est anglais : mois/jour/annee exécuter la commande dans 5 minutes : at now +5 minutes ou +5 weeks etc… Pour arrêter at : ctrl d Pour avoir la liste des tâches en attente : atq Pour supprimer une tâches : atrm numéro (de tâche tel que listé par atq)
Faire une pause
sleep 10 secondes par défauts mais on peut préciser : m, h, d Pratique pour laisser le temps à une commande de s'exécuter avant d'enchaîner. NB : commande,commande1 éxécute les deux commandes. Mais commande && commande1 n'exécute la seconde que si la première l'est.
Exécuter une commande régulièrement @
crontab
Modifier /etc/cron.allow pour autoriser les utilisateurs à utiliser crontab options : u -< utilisateur , l liste des travaux , r supprimer, e pour éditer Contenu du fichier /etc/crontab initial SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root
For details see man 4 crontabs
Example of job definition:
Visualiser la charge du système
Graphiquement avec @tload ps aussi ou top pour avoir un ps dynamique (se ferme en tapant q) Pour top : f ajoute une colonne et F choisi la colonne de classement ; u filtre l'utilisateur ; k tue un processus
Copier une partition ou un disque
Type de partition du répertoire ?
findmnt -no FSTYPE /home
Sur quel disque ?
findmnt -vno SOURCE /home/
@dd
Voir la commande @dd qui permet de faire des choses magiques. Un super tutoriel avec des trucs incroyables pour créer des disques virtuels, lire le bios et plus…. file:///mediatheque/bibliotheque/Informatique/OS/Linux/dd%20%5BWiki%20ubuntu-fr%5D.html
cp
Pour réduire le temps de copie utiliser les option suivantes : cp -iva –reflink=always
Compression et archivage
tar
Tar [Options] [Fichier d'archives] [Fichier ou répertoire à archiver]
Pour compresser nuage dans l'archive nuage_vps.tar.gz : sudo tar –atime-preserve –same-owner -cfvz ./nuage_data_vps_15022023.tar.gz “/srv/nuage_data”
Pour compresser en excluant ce qui est dans /docs : tar cvzf project.tar.gz –exclude=/docs
Pour extraire un fichier spécifique : tar -xz -f Musique.tar.gz “./musique/1.mp3”
Rechercher tar tvzf fichier.tar.gz | grep superfichier.txt
En utilisant l’option -r, tar ajoute des fichiers aux archives existantes, sans en créer une nouvelle, à condition qu'elle ne soit pas compressée :tar rvf fichier.tar *.txt
E.g :
lang_sh_linenumbers_true_sudo_tar_-cvzfop_documents_nuage_nuage_apps_vps1_022023.tar.gz_srv_nuage_apps}
Exploitation des url - CURL
8080} Nombreuses options et fonctionnalités dans le manuel.
Partition et systèmes de fichiers
Voir les partitions : cat /proc/partitions ou /proc/self/mountinfo
MISE à jour du système sudo blockdev –rereadpt /dev/sde ou partprobe
Des infos sur la partition : fdisk -l -u /dev/sdxx
@BTRFS
https://fedoramagazine.org/working-with-btrfs-general-concepts/ https://fr.linux-console.net/?p=22226 https://btrfs.readthedocs.io/en/latest/ Pour opérer sur le système de fichier, se mettre sur le répertoire de fichier. exemple : lang_sh_linenumbers_false_lsblkperso_dev_sdd_name_label_size_fsused_parttype_fstype_mountpoint_uuid_sdd_documents_931_5g_496g_btrfs_mnt_18454f56-cdcf-4693-968a-98593c2739bd_denis_pcden_mnt_cd_mnt_denis_pcden_mnt_sudo_btrfs_subvolume_create_opt_denis_pcden_mnt_sudo_btrfs_subvolume_list_mnt_id_256_gen_1037_top_level_5_path_opt_denis_pcden_mnt_sudo_mount_-t_btrfs_-o_subvol_opt_uuid_18454f56-cdcf-4693-968a-98593c2739bd_opt}
Snapshot pour sauvegarder
https://fedoramagazine.org/working-with-btrfs-snapshots/ https://archive.kernel.org/oldwiki/btrfs.wiki.kernel.org/index.php/Incremental_Backup.html Le problème c'est de les faire sur un disque externe : il faut d'abord créer un instantané local et envoyer cet instantané sur l'autre support. Possibilité d'utiliser /opt/btrbk-0.32.6/ (https://digint.ch/btrbk/ ) mais utilise aussi des snapshot sur le même volume. Bilan de l'histoire : rsync ou cp !
Problèmes
scrub vérifie l'arborescence, et reporte le résultat dans des fichiers sous /var/lib/btrfs/ scrub ne peut être lancé que sur un système monté. lang_sh_linenumbers_true_btrfs_scrub_start_btrfs_srub_status}
