recettes/Homelab/Linux antisèche thuysse cheatsheet.md
gribse ecdfa2f7c4 Squashed 'temp-repo/' content from commit 6688605
git-subtree-dir: temp-repo
git-subtree-split: 6688605ad41f49d1eccead8d29421c658cad0100
2025-10-06 19:14:58 +02:00

157 lines
8 KiB
Markdown
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Installer Linux
cf [[Installer serveur Linux]]
# Copier avec Rsync
Locally :
```bash
rsync -avhW --no-compress --progress /src/ /dst/
```
Over the network :
```sh
rsync -rtvuP source_rep/ destination_rep/
```
Options
```
-a is for archive, which preserves ownership, permissions etc.
-v is for verbose, so I can see what's happening (optional)
-h is for human-readable, so the transfer rate and file sizes are easier to read (optional)
-W is for copying whole files only, without delta-xfer algorithm which should reduce CPU load
--no-compress as there's no lack of bandwidth between local devices
--progress so I can see the progress of large files (optional)
```
```sh
rsync -artvuP --info=progress2 --itemize-changes --verbose /mnt/nestor-v3/mediaLibrary/ /mnt/TNAS/mediaLibrary/
```
| _Les Options_ | Descriptions |
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| -a | Mode archivage. Équivalent à -rlptgoD |
| -g | Préserve le groupe |
| -D | Préserve les périphériques. Nécessite dêtre root |
| -l | Copie les liens symboliques comme liens symboliques |
| -o | Préserve le propriétaire. Nécessite dêtre root |
| -p | Préserve les permissions |
| -o | Préserve le propriétaire. Nécessite dêtre root |
| -P | Combine les options progress et partial |
| -r | Copie récursive des répertoires |
| -t | Préserve les dates |
| -u | Cela force rsync à ignorer tous les fichiers qui existent sur la destination et dont lheure de modification est plus récente que le fichier source. |
| -v | Mode verbose pour afficher de nombreuses informations sont affichées lors du transfert. |
| -z | Compresse le fichier pour un meilleur transfert par le réseau |
| delete | Synchronisation et miroir parfaite, le fichier de destination sera supprimé, sil nest pas présent dans la source |
| exclude= | Exclure des fichiers de la sauvegarde |
| max-size | Indique une taille maximal de fichier à ne pas transférer |
| partial | Par défaut, rsync supprimera tout fichier partiellement transféré si le transfert est interrompu. <br>partial indique à rsync de conserver le fichier partiel, ce qui devrait accélérer le transfert du reste du fichier. |
| progress | Affiche une barre de progression |
Source : [rsync - malekal.com](https://www.malekal.com/rsync-synchroniser-copier-fichiers-distance-ou-locaux/)
Pour que rsync contine meme quand on arrête la session ssh :
Start a tmux session:
```sh
tmux new -s rsync_session
```
Run the rsync command, then detach using Ctrl+B, then D.
To reattach:
```sh
tmux attach -t rsync_session
```
# Tranfser via FTP
```sh
lftp -u gribse,BouncingYoyoN09 217.128.128.22 -e "mirror /media/md0/mediaLibrary/shows /mnt/TNAS/mediaLibrary/shows; bye"
```
Multiple in parallel :
```sh
lftp -u gribse,BouncingYoyoN09 217.128.128.22 -e "mirror --parallel=5 /media/md0/containers/immich /mnt/TNAS/docker-data/immich; bye"
```
# Estimer % de transfert
en comparant la taille de 2 dirs, source & dest
```sh
du -sb /mnt/TNAS/docker-data/immich /mnt/nestor-v3/containers/immich | awk 'NR==1{s1=$1} NR==2{s2=$1; printf "%s %s %.0f\n", s1, s2, (s1/s2)*100}' | numfmt --to=iec --field=1,2 | awk '{printf "%s/%s (%s%%)\n", $1, $2, $3}'
```
Output :
> 1.8T/2.1T (87%)
# Mesurer taille directory et sous-dirs
This does what you're looking for:
```sh
du -sh /* | sort -h
```
What this means:
- `-s` to give only the total for each command line argument.
- `-h` for human-readable suffixes like `M` for megabytes and `G` for gigabytes (optional).
- `/*` simply expands to all directories (and files) in `/`.
[linux - How to get the summarized sizes of directories and their subdirectories? - Super User](https://superuser.com/questions/162749/how-to-get-the-summarized-sizes-of-directories-and-their-subdirectories)
# Update docker container images manually
```yaml
docker compose pull xxxxx
docker compose up --force-recreate --build -d xxxxx
docker image prune -f
```
source : https://stackoverflow.com/questions/49316462/how-to-update-existing-images-with-docker-compose
Update immich :
```sh
docker compose pull immich-database immich-redis immich-server immich-microservices immich-machine-learning
docker compose up --force-recreate --build -d immich-database immich-redis immich-server immich-microservices immich-machine-learning
docker image prune -f
```
# Docker ports
```yml
ports:
- 5984:5984
- outside container:inside container
```
# Generate random number
```sh
openssl rand -base64 12
```
- -hex pour hex value
- -base64 pour des caractères
- rien pour du gibberish
# Shell
## Go to beginning of line
Crtl + A
## Copy output of command to clipboard
```sh
cat ~/.ssh/id_rsa.pub | xclip -selection clipboard
```