Đã phát hành qui v1.12.0 – giao diện web độc lập cho qBittorrent với tự động hóa và chia sẻ liên kết cứng cải tiến! Hỗ trợ instance lớn (70k+ torrent), tích hợp tự động, quét orphan, hỗ trợ hardlink/reflink, tích hợp ARR và streaming log thời gian thực. Chạy trên Linux/macOS/Windows, x86/arm/arm64. Đã có docs chính thức tại getqui.com. #qui #qbittorrent #selfhosted #automation #hardlink #qui #qbittorrent #tự_động_hóa #chia_sẻ_liên_kết #máy_chủ_tự_chủ

https://www.reddit.com/r/selfhosted/comments

Watching some #C code running in that window over there -> slowly consume more and more and more memory. But don't worry! It's not leaking! Honest! That's just what #hardlink does.

In other news, the patch I contributed a few years ago to make it work on a Mac has been tweaked and moved around and so on to the extent that the only line #GitBlame now says is my fault is, errm, a single `#endif` 😃

https://github.com/util-linux/util-linux/blame/master/misc-utils/hardlink.c#L212

Blaming util-linux/misc-utils/hardlink.c at master · util-linux/util-linux

Contribute to util-linux/util-linux development by creating an account on GitHub.

GitHub

I think this is nerdy but I want to share.

Something I just did makes me feel dumb, but also makes me laugh at myself.

I thought I had two identical files that could be optimized by making one a hard-link of the other. I deleted one and hard-linked to recreate it.

I saw I had three hard-links on the file.

The third hard-link was in my trash bin.

I had not checked to see if the two files were already hard-linked before I deleted the one.

#PC #filesystem #hardlink #Linux

OK that’s probably not the best way of making #backups but it’s the only way I found that:

  • Works in pull mode
  • Only downloads changed files
  • Does not require to install script interpreters on the server (such as python)
  • Does not need to store backups on the #server

If you have a better idea on how to achieve that, please let me know. I’m open to all suggestions or enhancements.

Requirements

rsync need to be installed on the server and on the client. For Debian based distros:

sudo apt-get install rsync

Then, create a snapshots folder that will contain all backups.

Targets

Create a text file containing paths of files or directories you want to backups. For example:

/etc/apache2 /etc/logrotate.d /etc/ssh/sshd_config /var/www/html /home/user/.zshrc

Let’s name this file targets.txt.

The script

Here the #rsync wrapper script I use:

#!/bin/sh set -e LAST="$(pwd)/snapshots/latest" date="$(date "+%Y-%b-%d_%T")" rsync -rlptzh --delete --progress --stats --link-dest="$LAST" --files-from=targets.txt [email protected]:/ "snapshots/$date" rm -f "$LAST" ln -s "$date" $LAST

Basically, it asks rsync to download changed files into a new folder named according to the current time and to #hardlink unchanged files from the last #backup. That way, we get incremental backups but only changed files will occupies space.

At the end, the latest symlink is updated.

Drawbacks of this method

  • Backups are not stored #compressed
  • Renaming will result in duplicates (not handled by rsync)
  • There is no #deduplication between similar files
Akkoma

#hardlink is a duplicate file linker.

hardlink links files with identical content together using hardlinks. hardlink can include metadata in its difference checking, and can prefer files based on their metadata. hardlink supports a dry run mode for quickly examining the operation safely. hardlink also supports inclusion and exclusion regexes.

Website 🔗️: https://jak-linux.org/projects/hardlink/

apt 📦️: hardlink

#free #opensource #foss #fossmendations #sysadmin

hardlink - replace file copies using hardlinks

Personal Website

Explaining Soft Link And Hard Link In Linux With Examples - OSTechNix

This brief tutorial explains what is Soft link and Hard link in Linux and Unix operating systems with some practical examples.

OSTechNix
Diferencia entre enlace regular y enlace simbólico

Un enlace es un tipo especial de archivo que apunta a otro archivo o ubicación en el directorio de tu sistema. Los enlaces facilitan apuntar a un usuario o aplicación a una ubicación que podría referirse a una ruta mucho más enrevesada. Digamos, por ejemplo, que tienes una ruta que contiene datos de usuario en /usr/local/data/source/appsource/users. Lo último que deseas hacer es compartir esa ruta completa cada vez o requerir que los usuarios finales recuerden esa ruta. En cambio, podrías usar un enlace, de modo que los usuarios solo necesiten ir a /userdata. En la superficie, es así de fácil. Sin embargo, hay un aspecto de los enlaces que debes tener en cuenta: Regular o simbólico (a menudo denominado hard o soft). Así es, hay dos tipos diferentes de enlaces en un sistema Linux y es importante entender la diferencia entre los dos. Déjame explicar. Sin embargo, voy a hacer esto en términos simples. La diferencia entre los dos tipos de enlaces es en realidad un poco más complicada de lo que voy a exponer, pero quiero que esto sea tal que cualquiera pueda comprender el concepto de inmediato. Enlaces simbólicos Los enlaces simbólicos son probablemente lo que más utilizará en las máquinas Linux. Un enlace simbólico (o soft) es un archivo que actúa como un acceso directo a otra ubicación en tu sistema de archivos (similar a un iniciador de aplicaciones en un menú). Si tuvieras que crear un enlace simbólico llamado ~ /atajo que apuntara a / usr /local/data/user, si emitiste el comando ls ~ /atajo, la salida del comando en realidad estaría enumerando los contenidos de /usr /local/data/user (por supuesto, si soy técnico, en realidad apunta a un inodo diferente ... pero esa es otra historia para otro día). Si creaste un nuevo archivo en ~ / acceso directo, llamado prueba, ese nuevo archivo se guardaría realmente en /usr/local/data/user. Además, si creas un nuevo archivo en /usr/local/data/user, estaría inmediatamente disponible en ~ / acceso directo. ¿Pero cómo se crea ese enlace simbólico? En realidad es bastante simple. Seguiremos con nuestro ejemplo. Para crear el enlace simbólico ~ /atajo, apuntando a /usr/local/data/user, el comando sería: ln -s /usr/local/data/user ~/atajo El indicador -s denota que este es un enlace simbólico. Una vez que emitas el comando anterior, se creará el enlace simbólico. Emite el comando ls ~/ para ver el nuevo enlace en tu directorio (Figura A). Figura A   Para eliminar el enlace, solo necesitarás emitir el comando: rm ~/atajo Cabe señalar que, para que un usuario pueda trabajar con éxito con un enlace simbólico, ese usuario necesitaría permiso en la carpeta de destino. Por lo tanto, si un usuario no tiene permiso de escritura para /usr/local/data/user, no podrás escribir en el enlace simbólico. Entonces, antes o después de crear el enlace simbólico, asegúrate de probar si los usuarios tienen los permisos necesarios para el directorio de destino. Al igual que con los directorios, también puedes crear un enlace simbólico a un único archivo. Supongamos que tienes / usr / local / data / user / test y deseas crear un enlace simbólico en tu directorio de inicio. El comando para eso es similar: ln -s /usr/local/data/user/test ~/test Hay una instancia donde los enlaces simbólicos pueden ser un poco difíciles. Supongamos que has creado el enlace simbólico ~ / test que apunta a / usr / local / data / user / test y mueves / usr / local / data / user / test a / usr / local / data / user / TEST / test . Si lo haces, el enlace simbólico se mantendrá, pero no apuntará al archivo de destino. El enlace se habrá roto. Si realizas cambios en ~ / test, esos cambios no se reflejarán en / usr / local / data / user / TEST / test. Además, si eliminas el archivo original, el enlace simbólico permanecerá y (nuevamente) no señalará nada. Veamos qué pasa. Después de crear un enlace simbólico, moví el archivo de destino de un directorio a otro. La salida original de ls -l muestra un enlace simbólico de trabajo, mientras que la salida de ls -l, después de haberse movido el archivo de destino, muestra un enlace simbólico roto (Figura B). [caption id=attachment_85123 align=alignleft width=789] Created with GIMP[/caption]                             Lo mejor de los enlaces simbólicos es que pueden apuntar a cualquier cosa (archivos o directorios), a cualquier parte del sistema ... e incluso abarcar todos los sistemas de archivos. El mayor problema con los enlaces simbólicos es que hay una pequeña penalización de espacio y velocidad. Los enlaces simbólicos añaden una capa adicional de direccionamiento indirecto sobre el acceso normal al archivo, de modo que el kernel debe navegar por el enlace cuando abre el archivo. Esto agrega una pequeña cantidad de tiempo al proceso. Si su servidor tiene que acceder a miles de archivos, ese tiempo ciertamente puede sumarse. Enlaces regulares Los enlaces regulares (también conocidos como duros o hard) son algo completamente diferente. Cuando un enlace simbólico crea un acceso directo a otra ubicación, un enlace común es como crear un espejo de una ubicación a otra. Entonces, si tienes el archivo / usr / local / data / user / test y creas el enlace duro ~ / test, el contenido de / usr / local / data / user / test ahora existe en dos lugares. Esto significa que si eliminas el archivo de destino, el archivo de acceso directo permanecerá intacto. Ese no es el caso con los enlaces simbólicos (si eliminas el archivo de destino, el enlace simbólico fallará). Antes de mostrarte cómo crear un enlace regular, debes saber que no puedes crear enlaces regulares a directorios, solo archivos. Si intentas crear un enlace regular a un directorio, es posible que recibas un error por el esfuerzo (Figura C). [caption id=attachment_85124 align=alignleft width=792] Created with GIMP[/caption]                             Sin embargo, puede crear un enlace regular a un archivo específico. Los enlaces regulares se crean de la misma manera que los enlaces simbólicos, solo que sin el distintivo -s. Entonces, para crear nuestro enlace regular ~ / test1 que apunta al archivo original / usr / local / data / user / test1, el comando sería: ln /usr/local/data/user/test1 ~/test1 Si editamos cualquier archivo, los cambios se reflejarán en ambos. Si borramos cualquiera de los archivos, el otro permanecerá intacto. Lo mejor de los enlaces regulares es que no hay una penalización de velocidad o tamaño al usarlos. El mayor problema con los enlaces regulares es que no pueden abarcar todos los sistemas de archivos. Fuente: techrepublic.com                                                

Maslinux