# 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.
–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 ```