Fish shell Add a directory to the path, but only if it exists

Add a directory to the path, but only if it exists.

function add_path_maybe -d "Add a directory to the path, but only if it exists"
    # If the path exists...
    if test -d $argv[1]
        # ...and if it's not already in the PATH...
        if not contains $argv[1] $PATH
            # ...push it to the start of the path.
            set PATH $argv[1] $PATH
        end
    end
end

journalctl uses a lot of space on my disk

The aswer is you can check the used size and you can shrink the used space.

journalctl --disk-usage
journalctl --vacuum-size=1G

Other Options are

--vacuum-size=BYTES   Reduce disk usage below specified size
--vacuum-files=INT    Leave only the specified number of journal files
--vacuum-time=TIME    Remove journal files older than specified time

zfs volume

zfs create -V 10G tank/virtualdisk
mkfs.ext4 /dev/zvol/fourth/virtualdisk
zfs set compression=on fourth/virtualdisk

To create a sparse volume you add the -s parameter so that the previous command would look like this

Sparse = volume with no reservation / Thin provisioning

zfs create -s -V 10G fourth/virtualdisk
mount /dev/zvol/fourth/virtualdisk /mnt

Check available space on the filesystem:

df -h /mnt

Resize

zfs set volsize=20G tank/virtualdisk
resize2fs /dev/zvol/tank/virtualdisk
df -h /mnt
zfs list

As mentioned, even if the volume is empty at the moment, space is preallocated, so it takes 20GB out of our pool. But even though it wasn’t initially created as a sparse volume, we can change it now

zfs set refreservation=none tank/virtualdisk
zfs list

Tip: when using ext4 on a ZFS volume, you may notice that after deleting data in `/mnt`, the volume doesn’t reflect any gains in usable space. This is because, for efficiency, a lot of filesystems like ext4 don’t actually remove the data on disk, they just dereference it. Otherwise, deleting 100GB of information would take a very long time and make your system slow. This means that deleted files continue to exist in random blocks on disk, consequently on the ZFS volume too. To free up space, you would use a command such as `fstrim /mnt` to actually erase unused data in the ext4 filesystem. Only use the tool when needed, as to not “tire” the physical devices unnecessarily (although the numbers are pretty high these days, devices have a limited number of write cycles).

Don’t forget that a lot of the other ZFS-specific features are also available on volumes (e.g snapshots and clones).

Archive for category linux

Archives by Month: