MYCSS

27 листопада 2021 р.

Нотатки: ZFS for postgresql database, Restore pleroma database, ZFS Snapshot for postgresql db

FreeBSD, Postgress SQL Database v14.
Відновлення бази даних Pleroma на сервері з резервної копії.

pkg install postgresql14-server
pkg install postgresql14-contrib
zfs create -o mountpoint=none zroot/var/db
zfs create -o mountpoint=/var/db/postgres
zroot/var/db/postgres
zfs list
zfs zfs set atime=off zroot/var/db/postgres
zfs set atime=off zroot/var/db/postgres
zfs set relatime=on zroot/var/db/postgres
zfs set recordsize=8k zroot/var/db/postgres
chown -R postgres:postrgres /var/db/postgres
chmod 750 /var/db/postgres
service postgresql initdb
pkg install sudo

restore_db.sh

#!/usr/bin/env sh
DBSAVE=. #DBFILE=pleroma_2021-11-09-0000.sql.gz sudo -u postgres psql < pleroma_init.sql cd ${DBSAVE} DBFILE=$( ls -1 *.sql.gz | tail -1 ) echo ${DBFILE} zcat ${DBSAVE}/${DBFILE} | sudo -u postgres psql -d pleroma

pleroma_init.sql:

REVOKE CONNECT ON DATABASE  pleroma FROM public;
SELECT pg_terminate_backend(pg_stat_activity.pid)
 FROM pg_stat_activity
 WHERE pg_stat_activity.datname = 'pleroma';
CREATE USER pleroma WITH ENCRYPTED PASSWORD '.......................................';
DROP DATABASE pleroma;
CREATE DATABASE pleroma OWNER pleroma;
\c pleroma;
--Extensions made by ecto.migrate that need superuser access
CREATE EXTENSION IF NOT EXISTS citext;
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
GRANT CONNECT ON DATABASE pleroma TO public;
zfs-snapshot-pgsql.sh
#!/usr/bin/env sh
DATASQL=data14
DATABASE=/var/db/postgres/${DATASQL}
DBDATASET=zroot/var/db/postgres
DBDATASET_CLONE=zroot/var/db/postgres-clonedb
DATABASE_CLONE=/var/db/postgres-clonedb
SHAREDSQL=/usr/local/share/postgresql
zfs list -t snapshot
zfs destroy ${DBDATASET}@snap1
touch ${DATABASE}/backup_in_progress
#START BACKUP SQL by SQL SNAPSHOT
sql="SELECT pg_start_backup('snapshot', true);"
sudo -u postgres psql -c "$sql"
#Fix state of DATABSE DIRECTORY to ZFS snapshot
zfs snapshot ${DBDATASET}@snap1
sql="SELECT pg_stop_backup();"
sudo -u postgres psql -c "$sql"
rm ${DATABASE}/backup_in_progress
#STOP BACKUP SQL by SQL SNAPSHOT
zfs list -t snapshot 
#CLONE ZFS SNAPSHOT to new SQL DATABSE DIRECTORY
zfs clone -o mountpoint=${DATABASE_CLONE} ${DBDATASET}@snap1 ${DBDATASET_CLONE}
#Backup by file archive
tar -cf ~/backup.tar ${DATABASE_CLONE}
#Backup by pg_dump to SQL by start tmp instance of pgsql on port 5433
rm ${DATABASE_CLONE}/${DATASQL}/postmaster.*
cp ${SHAREDSQL}/postgresql.conf.sample ${DATABASE_CLONE}/${DATASQL}/postgresql.conf
sudo -u postgres pg_ctl -D ${DATABASE_CLONE}/${DATASQL} -o "-p 5433" start
umask 077
sudo -u postgres pg_dump pleroma -p 5433 --clean --create | gzip >  pleroma_`date +%F-%H%M`.sql.gz
sudo -u postgres pg_ctl -D ${DATABASE_CLONE}/${DATASQL} stop -m immediate
umount  ${DATABASE_CLONE}
zfs destroy ${DBDATASET_CLONE}


 

 Ref.: 

13 листопада 2021 р.

Squid ipv6 preffer

https://wiki.squid-cache.org/Features/IPv6

acl to_ipv6 dst ipv6

# Magic entry. Place first in your config. This makes sure Squid has the IP available.
http_access deny to_ipv6 !all

tcp_outgoing_address 10.255.0.1 !to_ipv6
tcp_outgoing_address dead:beef::1 to_ipv6

11 вересня 2021 р.

Нотатка для тих хто буде вимагати паперовий витяг про податковий номер

За інформацією з: Паспорт громадянина України — Вікіпедія

З 8 серпня 2020 року РНОКПП на зворотньому боці паспорта має таку ж юридичну силу, як і довідка про присвоєння РНОКПП[32][33].

Ідентифікаційний код на ID-картці та свідоцтві про народження отримав таку ж юридичну силу, як і довідка про присвоєння РНОКПП :: Державна міграційна служба України


Податковий кодекс України

Документ 2755-VI, чинний, поточна редакція — Редакція від 01.08.2021

Стаття 70. Державний реєстр фізичних осіб - платників податків

70.9. …..

{Абзац четвертий пункту 70.9 статті 70 із змінами, внесеними згідно із Законом № 1797-VIII від 21.12.2016}

Підтвердженням достовірності реєстраційного номера облікової картки платника податків є документ, що засвідчує реєстрацію особи у Державному реєстрі (картка платника податків), або дані про реєстраційний номер облікової картки платника податків з Державного реєстру, внесені до паспорта громадянина України або свідоцтва про народження.

{Пункт 70.9 статті 70 доповнено абзацом п'ятим згідно із Законом № 786-IX від 14.07.2020}

Особа за власним вибором пред’являє один із зазначених документів для надання даних про реєстраційний номер облікової картки платника податків.

{Пункт 70.9 статті 70 доповнено абзацом шостим згідно із Законом № 786-IX від 14.07.2020}

Особа може пред’явити копію документа, що засвідчує реєстрацію особи в Державному реєстрі, у тому числі і в електронному вигляді, за умови наявності в одержувача інформації технічної можливості здійснити перевірку відповідності реєстраційних даних фізичної особи даним Державного реєстру в електронній формі інформаційно-телекомунікаційними засобами з використанням засобів технічного та криптографічного захисту інформації відповідно до вимог законодавства з питань захисту інформації.

{Пункт 70.9 статті 70 доповнено абзацом сьомим згідно із Законом № 786-IX від 14.07.2020}

 
Для роздрукування:

Нотатка для тих хто буде вимагати паперовий витяг про податковий номер

 

10 вересня 2021 р.

Pleroma - change to new domain directly on database postgress

Pleroma - is social networking software compatible with other Fediverse software such as Mastodon, Misskey, Pixelfed and many others.

Якщо було змінено основний домен то змінити усі записи що існують на новий домен зі старого домену можна за допомогою цієї послідовності SQL обробок у базі даних postgress. Для засовування замінити OLD.DOMAIN, та NEW.DOMAIN, реальними значеннями у редакторі.

sudo -u postgres  psql -d pleroma -c "\
 ALTER TABLE ONLY public.chats \
    ALTER CONSTRAINT chats_recipient_fkey DEFERRABLE INITIALLY DEFERRED;

 BEGIN;
  UPDATE public.users SET ap_id = replace(ap_id, '://OLD.DOMAIN', '://NEW.DOMAIN');
  UPDATE public.chats SET recipient = replace(recipient, '://OLD.DOMAIN', '://NEW.DOMAIN');
 COMMIT;

 ALTER TABLE ONLY public.chats \
    ALTER CONSTRAINT chats_recipient_fkey NOT DEFERRABLE;

 UPDATE public.users SET avatar = replace(avatar::TEXT, '://OLD.DOMAIN', '://NEW.DOMAIN')::jsonb;
 UPDATE public.users SET follower_address = replace(follower_address, '://OLD.DOMAIN', '://NEW.DOMAIN');
 UPDATE public.users SET following_address = replace(following_address, '://OLD.DOMAIN', '://NEW.DOMAIN');
 UPDATE public.users SET banner = replace(banner::TEXT, '://OLD.DOMAIN', '://NEW.DOMAIN')::jsonb;
 UPDATE public.users SET bio = replace(bio, '://OLD.DOMAIN', '://NEW.DOMAIN');
 UPDATE public.activities SET data = replace(data::TEXT, '://OLD.DOMAIN', '://NEW.DOMAIN')::jsonb;
 UPDATE public.activities SET actor = replace(actor, '://OLD.DOMAIN', '://NEW.DOMAIN');
 UPDATE public.activities SET recipients = replace(recipients::TEXT, '://OLD.DOMAIN', '://NEW.DOMAIN')::varchar[]
 UPDATE public.apps SET redirect_uris = replace(redirect_uris, '://OLD.DOMAIN', '://NEW.DOMAIN');
 UPDATE public.apps SET website = replace(website, '://OLD.DOMAIN', '://NEW.DOMAIN');
 UPDATE public.instances SET host = replace(host, 'OLD.DOMAIN', 'NEW.DOMAIN');
 UPDATE public.instances SET favicon = replace(favicon, '://OLD.DOMAIN', '://NEW.DOMAIN');
 UPDATE public.lists SET following = replace(following::TEXT, '://OLD.DOMAIN', '://NEW.DOMAIN')::varchar[]
 UPDATE public.lists SET ap_id = replace(ap_id, '://OLD.DOMAIN', '://NEW.DOMAIN');
 UPDATE public.objects SET data = replace(data::TEXT, '://OLD.DOMAIN', '://NEW.DOMAIN')::jsonb;
"
актуально для  v2.3.0.

Нотатки: SAS expanders. Роз'яснення підключення. Варіанти підключення.

 

 SAS expanders explained

 

Simple Cascading Expansion Cabling (Maximum Physical Disk Support)

 
Fault-tolerant Asymmetric Expansion Cabling (Maximum Physical Disk Support)


За матеріалами:


24 липня 2021 р.

Перегляд на мобільному "Олімпіада - 2020" з каналу суспільного телебачення

Зараз почалася літня Олімпіада 2020 у Токіо, і хотів переглянути церемонію відкриття сьогодні з офіційного сайту суспільного телебачення на мобільному.
Але чомусь на мобільному пристрої у браузері Google Chrome, після проходження авторизації для легального перегляду, нічого не показувало. Хоч на стаціонарному комп'ютері, та на іншому смартфоні - все показувало.

Почав перебрати налаштування браузера у моєму смартфоні. І з'ясував, що причина це були заборонені Cookies  файли для третіх сторін. Додав виключення для сайту мовника, і тепер все показує.

Може комусь і згодиться вирішення цієї проблеми.





Коли забув ти рідну мову, біднієш духом ти щодня...
When you forgot your native language you would become a poor at spirit every day ...

Д.Білоус / D.Bilous
Рабів до раю не пускають. Будь вільним!

ipv6 ready