~/.local/share/4kdownload.com/4K Video Downloader/4K Video Downloader
~/.local/share/4kdownload.com/4K Slideshow Maker/4K Slideshow Maker
про свой опыт решения некоторых проблем и использования ряда возможностей ОС и приложений
sudo add-apt-repository -y ppa:apandada1/foliate && sudo apt update && sudo apt install -y foliate
В настройках foliate имеются варианты выбора шрифта, отображения вместо 2 столбцов (как по умолчанию) один, а также выключения автопереноса слов:
Читаемые и прочитанные книги складываются в каталог ~/.cache/com.github.johnfactotum.Foliate в виде файлов png – обложки книг и файлов json, которые содержат сведения о странице, на которой завершилось чтение в прошлый раз, с целью автоматического открытия читаемой книги на том же месте. При прошлом просмотре содержания указанного каталога в нём было найдено более 130 файлов.
Несмотря на наличие в настройках команды чистки кэша (раскройте в настройках пункт "Книга"), в силу "ленивости" возникло желание немного автоматизировать данный процесс. Ко всему прочему "жаба душит" за лишние занимаемые килобайты. 😂
Исходя из того, что читать люблю и читаю много 😀, на чтение книги порядка 400-500 страниц у меня уходит 2-3 дня. Принимая во внимание, что за месяц будет прочитано 10-15 книг, при числе > 10 файлов json к кэше (3 дня на книгу) было принято решение о запуске процедуры поиска и удаления файлов старше 30 суток (можно меньше или больше на ваше усмотрение).
Описание выполнение условия "если число найденных файлов больше, чем" описано в этой заметке, а найти файлы старше N дней и удалить реализуется через параметры команды find.
➙ Примечание. В используемом мной сценарии (скрипте) применяется протоколирование действий. Узнать такие команды можно по наличию слов day, echo и log. Если такой необходимости нет, то строки их содержащие можно удалить.
#!/bin/bash
day=`date '+%d'`
books=/home/user/.cache/com.github.johnfactotum.Foliate # вместо user указать своё имя пользователя в системе
log=/home/user/Reports/system/$day.txt
echo "$(date '+%H.%M.%S') – запуск задания foliate" >> $log
find $books -type f -name "*.json" | wc -l > /tmp/foliate.txt
value1=10
value2=`cat /tmp/foliate.txt`
if (( $value2 > $value1 )); then
echo " найдено файлов json – $value2" >> $log
echo " запуск очистки кэша foliate" >> $log
find $books -name "*.png" -mtime +30 -delete
find $books -name "*.json" -mtime +30 -delete
echo " старые файлы из кэша foliate удалены" >> $log
else
echo " найдено файлов json – $value2" >> $log
echo " файлов кэша для удаления не назначено" >> $log
fi
echo " завершение задания foliate" >> $log
exit
➙ Пояснение. В строках echo " ..." число пробелов равно 12-ти. 12 символов как раз и занимает отображение времени плюс тире с пробелами слева и справа от него:
$(date '+%H.%M.%S') –
Данный скрипт запускается мной при старте системы.
Ниже приводится пример реального протоколирования 30 января:
17.39.02 -- запуск задания foliate
найдено файлов json – 2
файлов кэша для удаления не назначено
завершение задания foliate
На тот момент в кэше были расположены файлы:
4E957209-CFCE-4BC2-9AF6-595CD61B5DBA.json
4E957209-CFCE-4BC2-9AF6-595CD61B5DBA.png
AB3F1A4D-5B5C-4C66-85D4-EF90A90A8796.json
📌 Дополнение. На форуме дали совет запретить использовать трекер положения файлов (позволяет находить файл книги который был перенесен в другой каталог). Настройка производится через dconf:
sudo dconf write /com/github/johnfactotum/Foliate/library/use-tracker false
Возможно, что для выполнения этого действия необходимо будет установить dconf-editor:
sudo apt install dconf-editor
После этого либо использовать верхнюю команду, либо, запустив графическую оболочку dconf-editor (sudo dconf-editor) отключить use-tracker.
Как поясняют, это позволит избежать возможного падения читалки с ошибкой сегментирования и в целом заставит её работать быстрее.
В настройках системы имеется пункт об удалении ненужных ядер, который доступ при обращении к менеджеру обновлений в разделе "Правка – Параметры – Автоматизация". Если в строке "Автоматическое обслуживание" положение движка установить в положение "Включено", то задание будет выполняться еженедельно от имени суперпользователя.
Однако мне более привычен старый способ удаления лишних ядер и очистки системы от ненужных файлов, который, как показала практика, в Linux Mint 20x не работает. Чтобы он работал в условии необходимо изменить значение vmlinuz* на config*
🔰 Вообще рекомендуют оставлять в системе предыдущее ядро,
чтобы в случае проблем с новым ядром можно было бы с загрузиться с прежним. Но лично у меня за последние годы такой необходимости ни разу не возникло.
Задачу можно выполнять при каждой загрузке системы, для чего создаваемый сценарий sh поместить в автозагрузку. Файл sh должен иметь разрешение на запуск как программы.
Так как операции могут быть выполнены только с правами суперпользователя (напр., sudo /home/user/clean.sh), то самому скрипту ( clean.sh – так называется у меня. Вы можете ему назначить какое угодно имя ) можно назначить запуск от имени суперпользователя без ввода пароля. Для этого выполните в терминале sudo xed /etc/sudoers и добавьте в него строку:
user ALL=NOPASSWD: путь_к_вашему_скрипту (напр., /home/user/clean.sh)
user – это ваш логин в системе.
При запуске сценария производится подсчёт ядер в системе. Если количество ядер будет больше 1, то будет осуществлено удаление всех ядер кроме текущего, а также выполнены команды автоочистки и автоудаления ненужных пакетов. Также в процессе будут удалены неиспользуемые модули ядра из каталога /lib/modules
Текст сценария (на примере моего).
#!/bin/bash
folder=/home/minter
kern=`find /boot -name config* | wc -l`
if [ $kern -gt 1 ];
then
apt purge -y $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1)
apt autoclean
apt autoremove -y
rm $folder/.bash_history
> $folder/.bash_history
fi
exit
Обратите внимание на переменную folder, которая указывает на домашнюю папку пользователя, соответствующую логину пользователя в системе (в приводимом примере – minter). Не ошибитесь, иначе вы получите свой "самый чистый домашний каталог в мире".
Если вам нужно протоколирование действий, то добавьте их в протокол событий, например:
#!/bin/bash
folder=/home/minter
log= ... указать расположение файла
kern=`find /boot -name config* | wc -l`
if [ $kern -gt 1 ];
then
echo "$(date '+%H-%M-%S') -- в системе ядер - $kern, удаление ядер." >> $log
apt purge -y $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1)
echo "$(date '+%H-%M-%S') -- запуск автоочистки." >> $log
apt autoclean
echo "$(date '+%H-%M-%S') -- запуск автоудаления." >> $log
apt autoremove -y
rm $folder/.bash_history
> $folder/.bash_history
echo "$(date '+%H-%M-%S') -- история bash очищена." >> $log
else
echo "$(date '+%H-%M-%S') -- очистка системы не требуется." >> $log
fi
exit
Пример практического выполнения.
Листинг каталога /boot до работы clean.sh :
config-5.4.0-66-generic
config-5.4.0-67-generic
grub
initrd.img
initrd.img-5.4.0-66-generic
initrd.img-5.4.0-67-generic
initrd.img.old
System.map-5.4.0-66-generic
System.map-5.4.0-67-generic
vmlinuz
vmlinuz-5.4.0-66-generic
vmlinuz-5.4.0-67-generic
vmlinuz.old
Листинг каталога /boot после работы clean.sh :
Идея: создать сценарий (скрипт на bash), по результатам выполнения которого определялась бы необходимость осуществления операции удаления неиспользуемых в системе ядер с последующей очисткой системы от ненужных пакетов.
Корзина не пустая – очищать, Корзина пустая – ничего не делать
Удалить из корзины файлы и каталоги старше N дней