Сайт | Скачать | Видео | Wiki

Автор Тема: Сохраненка.pfs create-save-pfs  (Прочитано 106282 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33974
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Сохраненка.pfs create-save-pfs
« Ответ #330 : 21 Сентябрь 2021, 09:19:45 »
Скрипт красивый, но слишком простой и без GUI
Кроме того все действия проводить в /tmp - может места не хватить
В том что мне не нравится функционала больше - от разных типов сохраненки до выбора компонентов, компрессии и т.п.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: Сохраненка.pfs create-save-pfs
« Ответ #331 : 21 Сентябрь 2021, 12:36:56 »
слишком простой
Это что, нынче недостаток?
без GUI
Ты же сам просил GUI делать отдельно.
в /tmp - может места не хватить
Где предложишь?
разных типов сохраненки
А их много? В файл - быстро заполняется. Основная болезнь классического Puppy. В каталог - сохраняет автоматом. Остаётся модуль, что я и делаю.
выбора компонентов, компрессии и т.п
Выбор компонентов - по ключам. С компрессией стоит ли заморачиваться? Поставить оптимальную.
На сегодняшний полдень:
Код
#!/bin/ash
# DdShurick GPL-v2 18.03.16
# DdShurick changed for prar 21.09.2021
if [ "$(id -u)" != 0 ]; then exit 1; fi

#Задаём переменные
BASE=$(losetup -l -O BACK-FILE | grep 001 | grep -v DEV)
SAVE_NEW=$(basename $BASE | sed "s/001/090-save/")
SAVEPATH=$(dirname $BASE)
#while getopts "frsu" O
do
case "$O" in
s) S=etc ;; #system
r) R=root ;; #root
u) U=home ;; #users
f) F="usr opt" ;; #full
'') S=etc; U=home ;; #default
*) echo "неверный ключ"
exit 1 ;;
esac
done

#[ -d ${SAVEPATH}/changes ] && SYSMNT=dir

#Последовательно копируем слои
mkdir -p /tmp/savepfs-root
SAVE=$(awk '/save/ {print $2}' /proc/mounts)
[ -d "$SAVE" ] && cp -af $SAVE/* /tmp/savepfs-root/
CHANGES=$(awk '/changes/ {print $2}' /proc/mounts)
for D in $F $R $S $U
do
[ -d $CHANGES/$D ] || continue
mkdir -p /tmp/savesfs-root/$D
cp -af  $CHANGES/$D/* /tmp/savesfs-root/$D
done

#Удаляем каталог сохранения если есть
#[ "$SYSMNT" = "dir" ] && rm -r /$SYSMNT/changes

#Удаляем "затенённые" (отмеченные как удалённые) файлы и каталоги.
find /tmp/savesfs-root -mindepth 2 -name .wh.* | while read WH
do
F=$(echo $WH | sed 's/\/tmp\/savesfs-root//;s/.wh.//g')
if [ -e "${CHANGES}$F" ]; then
rm $WH #если удалённый файл заново создан, удаляем .wh.*
else
[ -e "/tmp/savesfs-root$F" ] && rm -r /tmp/savesfs-root$F #если ранее сохранённый файл удалён, удаляем его.
fi # если .wh.* относится к нижним слоям - ничего не делаем
done

#Бекапим файл сохранения
[ -f $SAVEPATH/090-save-*.pfs ] && mv $SAVEPATH/090-save-*.pfs $SAVEPATH/090-save-*.pfs.old

#Создаём новый файл сохранения
mksquashfs /tmp/savesfs-root/ $SAVEPATH/${SAVE_NEW} -comp xz -Xbcj x86 && rm -r /tmp/savesfs-root
С ключами ещё не закончил и надо хелп.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33974
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Сохраненка.pfs create-save-pfs
« Ответ #332 : 21 Сентябрь 2021, 12:51:25 »
Простой - имел ввиду функционал. Посмотрите скрин. Большинство пунктов были сделаны "по просьбам"
Ты же сам просил GUI делать отдельно.
Т.е. будет? В основном мой GUI мне и не нравится
в /tmp - может места не хватить
Где предложишь?
У меня создается fs-in-file (на случай fat ntfs) на загрузочном разделе. Лучше предложить выбор
Вот обрастая подобным простое и становится сложным
В файл - быстро заполняется
Но RW альтернатив ему на fat ntfs нет
С компрессией стоит ли заморачиваться?
Народ выше по теме просил

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: Сохраненка.pfs create-save-pfs
« Ответ #333 : 21 Сентябрь 2021, 14:21:23 »
 Вот как-то так.
Над остальным подумаю.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: Сохраненка.pfs create-save-pfs
« Ответ #334 : 21 Сентябрь 2021, 18:27:37 »
 Такой дизайн пойдёт? Правда gtk2.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2543
  • Репутация: +33/-0
Re: Сохраненка.pfs create-save-pfs
« Ответ #335 : 21 Сентябрь 2021, 19:51:35 »
-имхо - "Сохранить настройки по умолчанию" - как-то размыто...
 
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: Сохраненка.pfs create-save-pfs
« Ответ #336 : 22 Сентябрь 2021, 12:55:08 »
 Вот, поиграйтесь. При запуске из консоли печатает команду с соответствующими ключами.
Gtk3 гадость, на gtk2 писать проще. Правда размер получается одинаковый.
« Последнее редактирование: 22 Сентябрь 2021, 12:56:46 от DdShurick »
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: Сохраненка.pfs create-save-pfs
« Ответ #337 : 22 Сентябрь 2021, 17:48:01 »
 Кнопки ни у кого не разъезжаются?
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2543
  • Репутация: +33/-0
Re: Сохраненка.pfs create-save-pfs
« Ответ #338 : 22 Сентябрь 2021, 18:20:23 »
- на Ледяном - кнопки нормально (# но может и "не в тему" т.к. пока на прар непробовал)
----
ps
у меня в последнее время мания к 'dialog/Xdialod # имхо - имеет значение на сборках как скомпилено # в большей степени касаемо 'dialog'
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2543
  • Репутация: +33/-0
Re: Сохраненка.pfs create-save-pfs
« Ответ #339 : 22 Сентябрь 2021, 18:47:49 »
pps
- мне навскидку почему-то кажется что к консольному-скрипту-с-ключами теоретически можно пришить любую GUI/TUI-обертку...
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2543
  • Репутация: +33/-0
Re: Сохраненка.pfs create-save-pfs
« Ответ #340 : 22 Сентябрь 2021, 20:10:11 »
- в 'mksavepfs' - '#!/bin/ash/' - ? может совместимей '#!/bin/sh/' если получится...
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: Сохраненка.pfs create-save-pfs
« Ответ #341 : 22 Сентябрь 2021, 21:41:40 »
мания к 'dialog/Xdialod
Я этим тоже переболел, потом стало тесно.
теоретически можно пришить
И практически тоже, тут главное стандарт.
'#!/bin/ash/'
Это для prar, sfs ash любит, а так без разницы. Первоисточник на sh.

Итак, уважаемая публика, "сладкая парочка", работает в паре из /usr/bin/
Ещё раз спрашиваю: "кнопки не разъезжаются"?
« Последнее редактирование: 22 Сентябрь 2021, 21:45:59 от DdShurick »
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33974
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Сохраненка.pfs create-save-pfs
« Ответ #342 : 23 Сентябрь 2021, 10:01:17 »
sfs ash любит
Он при запуске есть в разы меньше памяти чем bash
Протестировал аттач из предыдущего сообщения

По скрипту:
1. Лог пишется в несуществующий каталог
2. Не тестируется наличие свободного места в /tmp
3. mv *.old нерабочее
4. Нет объединения. Т.е. старая  сохраненка ротируется, а в новую из нее ничего не попадает

3+4 по итогу может при повторном рапуске закончиться потерей родной сохраненки
Код , как обычно, хороший , простой, хорошо читаемый
getopts мне понравилось

GUI
1. Где исходники? Был ли смысл такое делать на си. Тут и yad бы хватило...
2. Повторы "Сохранить" в тексте избыточны. Текст надо сокращать. Не помешали бы pop-up сообщения с подробными пояснениями
3. Радио кнопки удобнее перенести в начало - чтобы не париться с выравниванием
4. Вместо ОК - логичнее перенести текст слева на ктопку
5. Нет никаких иконок
6. Итог работы скрипта не выводится. Ошибки , наверное тоже
« Последнее редактирование: 23 Сентябрь 2021, 10:07:37 от sfs »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: Сохраненка.pfs create-save-pfs
« Ответ #343 : 23 Сентябрь 2021, 11:17:11 »
Не тестируется наличие свободного места в /tmp
И не надо. Есть идея использовать для объединения слоёв вспомогательную aufs. Я такое когда-то делал, когда возился со своим аналогом pfs-utils.
Радио кнопки удобнее перенести в начало - чтобы не париться с выравниванием
Вот потому я и ругаюсь на gtk3, в gtk2 кнопки по умолчанию вначале.
Нет никаких иконок
Не храм строим. Зачем загромождать.
Итог работы скрипта не выводится. Ошибки , наверное тоже
До завершения ещё далеко. Сначала работа, потом итоги.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: Сохраненка.pfs create-save-pfs
« Ответ #344 : 23 Сентябрь 2021, 11:25:43 »
Где исходники?
Прикрепил.
Тут и yad бы хватило...
"Тесноват" он для меня, и скучноват.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64