Day by Day, Site by Site

Open source, Some Code, Troubleshooting, Good Links

Apr 22, 2024 - 1 minute read - linux opensource

Отладка неправильного поведения утилиты xdg-open

Проблема началась с того что после монтирования контейнера Veracrypt, перестал открываться нормально файловый менеджер. Он открывался, но параллельно открывался браузер. Ранее такого поведения не было.

Я начал расследование этой ситуации. Помня, что уже когда то возился утилитами xdg-utils, я начал пробовать смотреть как настроены ассоциации через утилиты cli:

xdg-open ~/Downloads/
xdg-mime query filetype ~/Downloads/
xdg-mime default thunar.desktop inode/directory

Натолкнулся на то что утилита xdg-open открывает путь до точки монтирования НЕ корректно:

xdg-open /run/media/dp/test

Воспроизвелась ситуация когда открывается одновременно браузер и файловый менеджер.

Начал смотреть в эту сторону xdg-open. После того как я сделал изменения зафиксированные здесь , поведение была исправлено.

Но ментейнер проекта отказался принимать изменения пока не докопается до причины такого поведения. Я с ним согласен, так как это правильно.

Побочным эффектом явилось то, что ментейнер предложил обходное решение в виде в файл конфигурации ассоциаций ~/.config/mimeapps.list

 inode/directory=nemo.desktop
 inode/mount-point=nemo.desktop

Здесь можно прописать ваши ассоциации.

Причиной проблем явилось баг в зависимом пакете perl-file-mimeinfo в который входит утилита mimetype. Утилита mimetype используется в xdg-open. На момент разбора, в коде mimetype производился безусловный выход с кодом ошибки.

Было сформирован MR c исправлением. Ждем когда исправления будут доставлены в дистрибутивы.

Apr 17, 2024 - 1 minute read - lirycs

Редьярд Киплинг - «Серые глаза - рассвет...»

Серые глаза — рассвет,
Пароходная сирена,
Дождь, разлука, серый след
За винтом бегущей пены.

Чёрные глаза — жара,
В море сонных звёзд скольженье,
И у борта до утра
Поцелуев отраженье.

Синие глаза — луна,
Вальса белое молчанье,
Ежедневная стена
Неизбежного прощанья.

Карие глаза — песок,
Осень, волчья степь, охота,
Скачка, вся на волосок
От паденья и полёта.

Нет, я не судья для них,
Просто без суждений вздорных
Я четырежды должник
Синих, серых, карих, чёрных.

Как четыре стороны
Одного того же света,
Я люблю — в том нет вины —
Все четыре этих цвета.

Apr 17, 2024 - 1 minute read - lirycs

Маяковский - Вам!

Вам, проживающим за оргией оргию,
имеющим ванную и теплый клозет!
Как вам не стыдно о представленных к Георгию
вычитывать из столбцов газет?!

Знаете ли вы, бездарные, многие,
думающие нажраться лучше как, -
может быть, сейчас бомбой ноги
выдрало у Петрова поручика?..

Если б он, приведенный на убой,
вдруг увидел, израненный,
как вы измазанной в котлете губой
похотливо напеваете Северянина

Вам ли, любящим баб да блюда,
жизнь отдавать в угоду?!
Я лучше в баре блядям буду
подавать ананасную воду!

Apr 16, 2024 - 3 minute read - linux

Резервное копирование в Linux

Резервное копирование

sudo rsync --delete -ravn --stats /media/veracrypt1/ /media/veracrypt2/

Синхронизация 2-х директорий

Используется для синхронизации музыкальной коллекции, когда в двух местах используются одинаковая структура, но в одном месте были изменены теги, без изменения даты файлов.

rsync -rvan --delete --stats --progress -I /run/user/1000/gvfs/smb-share\:server\=sev_cprodv\,share\=music/ /media/dp/BZZZ/music

-n - пробный запуск. без реального копирования/удаления.

-a - архивная копия. сохраняет время, размер, права оригинального файла

--delete - удаляет файлы которых нет на источнике

--stats - дополнительная статистика

--progress - выводит прогресс действия

-I - самое важная опция. отключает быструю проверку rsync, которая используется по умолчанию: при совпадении размера и времени файл пропускается.

Слэш в конце пути источника говорит о том, что НЕ нужно создавать дополнительную каталог в каталоге назначения (т.е копируется содержимое).

Если слэша нет в конце пути источника, то нужно создавать копируемый каталог (т.е копируется каталог)

Синхронизация набора файлов

Есть папка с небольшим набором файлов. Есть другая папка с большим набором файлов. Первый набор входит во второй. Во втором наборе есть более новые версии файлов с теми же самыми именами что и в первом наборе. Задача синхронизировать версии файлов в первом наборе, взяв их из второго, и не трогая остальные.

rsync -tv --existing /share/stand/Vis/* /media/denpro/DEPOT1/Sertification2016/Repos2016/disks/skbv00033-02-visual/tnt-scylla/

Резервное копирование всей системы

Чтобы создать бэкап всей системы, хватит команды:

tar.bz2:

sudo tar -cvjpf /mnt/matrix2/system.tar.bz2 --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=/media --exclude=/nfs --exclude=/run --exclude=/tmp --exclude=.cache --exclude=/home /

tar:

sudo tar -cvpf /mnt/matrix2/system.tar --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=/media --exclude=/nfs --exclude=/run --exclude=/tmp --exclude=.cache --exclude=/home /

Что, собственно, в ней заключено? С правами суперпользователя (sudo) создаём тарбол (tar с ключём -c) и архивируем его архиватором bz2(ключ -j). Ключ -p для сохранения атрибутов и прав файлов. При этом с помощью ключа --exclude исключаем из архива системные директории и файлы устройств и, конечно же, сам архив (чтобы он рекурсивно не начал паковаться сам в себя). В итоге, получаем в корне наш полный архив системы в файле system.tar.

Как его потом развернуть? Ну, во-первых, нужна будет всё-таки работающая система. Например, можно провести «чистую» установку (или же загрузиться с LiveCD). Будем считать, что у нас есть работающая система, в которой мы хотим развернуть наш архив. Хватит тоже одной команды:

tar xvpfz /mnt/matrix2/system.tar.bz2 -C /

Squashfs

Устанавливаем squashfs-tools:

sudo apt-get install squashfs-tools sudo mksquashfs / /media/dp/BEGEMOT/ubuntu.sqfs -no-duplicates -ef /home/dp/exclude.txt

exclude.txt – файл с исключениями. В отдельной строке файла содержится директория или файл исключения.

DD clone

Упаковка:

sudo dd if=/dev/sda1 bs=8096 conv=noerror | gzip -9cf > sda1.dd-image.gz

Распаковка:

sudo gunzip -cd sda1.dd-image.gz | dd of=/dev/sda1 bs=8096

Для задействования всех ядер процессора нужно использовать утилиту pigz

sudo dd if=/dev/sda bs=8096 conv=noerror | pigz -3 > /run/media/manjaro/RESERVED2/sda.dd-image.gz

sudo pigz -dc sda1.dd-image.gz | dd of=/dev/sda1 bs=8096

Резервная копия HDD to HHD для ExFat

Прежний метод копирования tracey (deprecated):

time rsync -vrltDn --whole-file --info=progress2 /mnt/RESERVED4/tracey /mnt/MATRIX1/tracey

Новый метод копирования tracey (deprecated):

Исходим из того что MATRIX1 основной диск, MATRIX2 запасной:

time rsync -vrltDn --no-whole-file --inplace --ignore-times --info=progress2 /mnt/RESERVED4/tracey /mnt/MATRIX1/tracey

time rsync -vrltDn --no-whole-file --inplace --ignore-times --info=progress2 /mnt/RESERVED4/tracey /mnt/MATRIX2/tracey

Копирование всего остального

time rsync -vrltDn --delete --info=progress2 /mnt/MATRIX1/ /mnt/MATRIX2/

Резервная копия HDD to HHD для Ext4/Btrfs

time sudo rsync -axHAXSvn --delete --info=progress2 /mnt/bublick/ /run/media/dp/test/

У VeraCrypt снять опцию “Оставлять время изменения контейнера неизменным” что бы у крипто контейнера менялась дата изменения и он входил в набор синхронизируемых файлов.

time rsync -axHAXSvn --delete --info=progress2 --exclude={"/tmp","/proc","/dev","/sys","/run",".cache","/mnt"} / /mnt/vault/oldsys/

Apr 27, 2023 - 1 minute read - golang

Работа с частными репозиториями из Goland (Golang) 2

Golang при работе с внешними зависимостями по умолчанию работает с https протколом. Поэтому с настройками по умолчанию возникает ошибка ниже:

go: gitlab.space.team/dev/spacevm-go@v0.0.0-20230427205557-c59c016940d9: invalid version: git ls-remote -q origin in 
/home/dp/Code/golang/go/pkg/mod/cache/vcs/9d6ac92dae2cb8c34a30234f55abdae32ec5751ebe1104a5d00259017d7295a9: exit status 128:
	fatal: could not read Username for 'http://gitlab.space.team':
	terminal prompts disabled Confirm the import path was entered correctly.
If this is a private repository, see https://golang.org/doc/faq#git_https for additional information.

Что бы заставить его использовать http при работе частными репозиториями неободимо прописать авторизацию через файл $HOME/.netrc

machine gitlab.space.team login USERNAME password PASSWORD(APIKEY)

При возникновении следующей ошибки:

go: terraform-provider-spacevm imports
	gitlab.space.team/dev/spacevm-go/api: gitlab.space.team/dev/spacevm-go@v0.0.0-20230302093536-f65e5b53e820: parsing go.mod:
	module declares its path as: spacevm-go
	        but was required as: gitlab.space.team/dev/spacevm-go

необходимо в самописном модуле который импортируем и который расположен в приватном репозитории прописать правильное именование.

Вместо module spacevm-go необходимо писать полный путь до приватного модуля module gitlab.space.team/dev/spacevm-go.

Яндекс.Метрика