git-subtree-dir: temp-repo git-subtree-split: 6688605ad41f49d1eccead8d29421c658cad0100
157 lines
8 KiB
Markdown
Executable file
157 lines
8 KiB
Markdown
Executable file
# 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 l’heure 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é, s’il n’est 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
|
||
```
|
||
|
||
|