Заметки

Цитата про изображения

Как никогда актуально, с нынешним увлечением нейросетевыми генерациями:

I would exchange every painting of Christ for one snapshot - George Bernard Shaw

Я бы променял все картины Христа на одну его фотографию - Бернард Шоу. Примечание: "snapshot" - это именно спонтанное, "ухваченное" из жизни фото.

Хочется видеть ваши лица, а не фантазии на тему.

Про соцсети

Мы как-то, больше десяти лет назад, на работе сидели и шутили, что вот поразвелось социальных сетей, а надо придумать асоциальную сеть, в которой надо будет добавлять не в друзья, а во враги, ставить постам и фоткам дизлайки, и так далее. Прошли годы и понятно, что социалки тоже более-менее справляются с асоциальным функционалом. Во всех сетях сплошные удалённые и брошенные аккаунты, отфренживания, баны, отписка, половина аккаунтов закрытые или в той или иной степени анонимные. Вместо дизлайков можно просто посты смотреть, но никогда не писать хороших комментариев и не ставить лайки, а когда этого мало - немедленно отписываться. Теперь в сетях, скорее, нехватка социальности, а с асоциальностью полный порядок.

Ловим процессы, которые шарятся по винту (Linux)

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

iotop

Если ввод-вывод активный и идёт прямо сейчас, достаточно просто посмотреть на sudo iotop -o
Если ввод-вывод идёт небольшими порциями, то используем: sudo iotop -bktoqqq -d .5
Пояснение: -b - пакетный режим вывода, -k - килобайты, -t - показывать время, -o - показывать только потоки, которые занимаются вводом-выводом, -qqq - отключить заголовки, -d 0.5 - период обновления в секундах.
Поймав, какой процесс занимается работой с диском, можно посмотреть на его открытые файлы: lsof -p $PID (замените $PID на номер интересующего процесса).

fatrace

Это намного более удобный способ для отслеживания редких операций (программа есть в репозитории Убунты). Сразу печатает кто, в какой файл лазит и какой доступ (чтение или запись).
cd /mnt/каталог_куда_смонтирован_винт
sudo fatrace -c -t

P.S. Типичные злодеи - индексаторы файловой системы, их можно выпилить так: sudo apt remove locate mlocate plocate. См. askubuntu. Также постоянным желанием писать на диск страдает Yandex.Disk - демона синхронизации можно гасить, когда он не нужен.

Файлы webp с расширением jpg из ВК (Linux/bash)

ВК перешёл на фотографии в формате webp в мобильном клиенте, но когда вы их сохраняете в галерею он пишет их с разрешением jpg. В результате, некоторые программы работают с этими файлами неправильно. Вот этот небольшой скриптик позволяет рекурсивно пройти каталог с такими неправильно названными файлами и переименовать их правильно:

·· [Read more · Читать дальше] ·· »»»

Перенос корневой файловой системы на новый диск (Linux, Ubuntu)

Это не универсальная инструкция, просто шпаргалка для себя. Мог что-то упустить :)

  1. Форматируем новый винт. Записываем (копируем в текстовый редактор и т.п.) UUID будущего корневого раздела. Делаем этот раздел загрузочным (активным) (включаем флаг "boot").
  2. Монтируем его, например, в /mnt/tmp.
  3. Копируем файлы: cd /mnt/tmp && sudo cp -apxuR /* .
    Можно добавить -v для печати имён файлов в процессе работы, но это сильно замедляет копирование.
  4. Правим /mnt/tmp/fstab (заменяем UUID для "/" на новый).
  5. Правим /mnt/tmp/boot/grub/grub.cfg (заменяем UUID корневого диска на новый).
  6. Проецируем системные каталоги в /mnt/tmp, чтобы сделать chroot:
    sudo mount -o bind /dev/ /mnt/tmp/dev
    sudo mount -t proc none /mnt/tmp/proc
    sudo mount -t sysfs none /mnt/tmp/sys
  7. sudo chroot /mnt/tmp
  8. sudo grub-install /dev/sdXXXX (Имя устройства, а не раздела!) Примечание: на некоторых машинах grub-install может занять несколько минут, а то и полчаса. Прерывать его не нужно, дайте доработать.

После этого, перезагружаемся, выбирая новый диск в качестве стартового. Если всё ОК, отключаем старый диск.

Archives

                                                                                                                                                                                                                                                                   


© Sergey A. Galin, 1998-2021 sageshome.net/blog/