Архіви категорій: Разное, мелочи

outrun: execute a local command using the processing power of another Linux machine

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

Припустимо, у вас є якесь ПЗ, але вам не вистачає потужності поточного серверу, але є інший сервер. При цьому, на іншому потужнішому сервері зовсім не треба ставити це ПЗ, достатньо поставити лише outrun:

pip3 install outrun

Які обмеження при використанні:

  • Linux only (насправді, можна ще і BSD, але можуть бути нюанси)
  • підтримка fuse (ось із-за цього і обмеження Linux/BSD)
  • ssh root access (так, бо після запуску на віддаленій машині виконується chroot)

Домашня сторінка

Ventoy: just add another ISO

Ventoy is an open source tool to create bootable USB drive for ISO/WIM/IMG/VHD(x)/EFI files. 
With ventoy, you don’t need to format the disk over and over, you just need to copy the ISO/WIM/IMG/VHD(x)/EFI files to the USB drive and boot them directly.
You can copy many files at a time and ventoy will give you a boot menu to select them (screenshot). 
You can also browse ISO/WIM/IMG/VHD(x)/EFI files in local disks and boot them.

Official site https://www.ventoy.net/en/index.html

GitHub page https://github.com/ventoy/Ventoy

[dns] Fallback resolving

Є досить специфічне завдання: шукати запис у локальному DNS, а якщо його немає, то робити запит до іншого NS’y. Здавалося б, задача проста, але є нюанси. Якщо у вас немає такої зони DNS, то це працює, але що робити, якщо сама зона є, але записів немає? Тоді DNS сервер верне відповідь NXDOMAIN і fallback не спрацює. Зараз ця тема дуже актуальна, особливо, якщо у вас є внутрішній домен в зоні “.dev“. Тут є 2 варіанти:

Читати далі

[mysql] skip/stop replication by condition

Нещодавно дізнався, що у mysql є функціонал зупинки реплікації за умови. Правда, ця умова досить обмежена, але все ж таки, її можна застосувати з хистрістю. Наприклад, у вас є сервер, який трохи відстає і ви знаєте, що є проблемний запит, який треба пропустити. Це можна автоматизувати.

mysql>START SLAVE UNTIL MASTER_LOG_FILE = 'mysql-bin.0000028', MASTER_LOG_POS = 3846213;set gtid_next="XXX";begin; commit;set gtid_next = "AUTOMATIC";start slave;

Ми знаємо заздалегідь позицію проблемного запиту (mysql-bin.0000028, position=3846213) і саму транзакцію (ХХХ). Реплікація доходить до цього запиту, зупиняється, а далі класично виконується skip для GTID-реплікації.

[Linux]IPSet + iptables = destroy, create, error

Зіштовхнувся з однією проблемою при використанні iptables разом з ipset, а саме, коли перечитуєш правила, отримуєш помилку:

ipset v7.10: Set cannot be destroyed: it is in use by a kernel component
ipset v7.10: Set cannot be created: set with the same name already exists

Експерементальним шляхом було визначено, що після онулення правил неможливо одразу (мабуть, ще висять у памʼяті) видалити записи у ipset, треба зачекати. Тобто, потрібна от така констукція:

Читати далі

[squid] TCP_MISS_ABORTED/000, TCP_MISS/503

Що можуть означати ці коди в логах squid’a? Якщо вони у вас почали зʼявлятися після того, як все працювало, то в 99% ваш proxy сервер втратив вихід в інтернет. Перевірте просто через curl, чи відкриваються сайти, чи ні.

Причини можуть бути різні: від заблоковано у файерволі до втрат в мережі.

PS. Завжди перевіряйте, чи збігається у вас локальний час на proxy з вашим сервером авторизації (AD, Kerberos,…)

[exim] exim paniclog /var/log/exim4/paniclog on server has non-zero size

Останнім часом clamav почав дуже довго (інколи пару хвилин) оновлювати свої бази (поки не зʼясував, чому саме) і в ці моменти відповідно, clamav socket недоступний для exim’y. Як результат, в paniclog отримуємо запис

2022-10-13 12:02:46.101 [679872] 1oiu73-002qrg-V8 malware acl condition: clamd /run/clamav/clamd.ctl : unable to connect to UNIX socket (/run/clamav/clamd.ctl): Connection refused

і, якщо не почистити вручну paniclog, то кожен день будемо отримувати такі сповіщення:

Читати далі

Rescue partition

testdisk

TestDisk is powerful free data recovery software! It was primarily designed to help recover lost partitions and/or make non-booting disks bootable again when these symptoms are caused by faulty software: certain types of viruses or human error (such as accidentally deleting a Partition Table). Partition table recovery using TestDisk is really easy.

ddrescue

GNU ddrescue is a data recovery tool. It copies data from one file or block device (hard disc, cdrom, etc) to another, trying to rescue the good parts first in case of read errors.

dd_rescue

Like dd, dd_rescue does copy data from one file or block device to another. You can specify file positions (called seek and Skip in dd).

More recover tools

[Linux] Tracing: bcc-tools, bpftrace

BCC is a toolkit for creating efficient kernel tracing and manipulation programs, and includes several useful tools and examples. It makes use of extended BPF (Berkeley Packet Filters), formally known as eBPF, a new feature that was first added to Linux 3.15. Much of what BCC uses requires Linux 4.1 and above.

bpftrace is a high-level tracing language for Linux enhanced Berkeley Packet Filter (eBPF) available in recent Linux kernels (4.x)

[FreeBSD] Install from Linux

1) Install Linux (Debian)
2) Install grub-iso
3) upload liveCD mfsBSD.iso
4) set network settings via kFreeBSD.mfsbsd.ifconfig in /boot/grub/grub.cfg
menuentry "$file1" {
set isofile=/boot/images/$file1
loopback loop (hd0,1)\$isofile
kfreebsd (loop)/boot/kernel/kernel.gz -v
kfreebsd_module (loop)/boot/kernel/ahci.ko
kfreebsd_module (loop)/mfsroot.gz type=mfs_root
set kFreeBSD.vfs.root.mountfrom="ufs:/dev/md0"
set kFreeBSD.mfsbsd.hostname="$hostname"
set kFreeBSD.mfsbsd.mac_interfaces="ext1"
set kFreeBSD.mfsbsd.ifconfig_ext1_mac="${iface_mac}"
set kFreeBSD.mfsbsd.ifconfig_ext1="inet $ip/${ip_mask_short}"
set kFreeBSD.mfsbsd.defaultrouter="${ip_default}"
set kFreeBSD.mfsbsd.nameservers="8.8.8.8 1.1.1.1"
set kFreeBSD.mfsbsd.ifconfig_lo0="DHCP"
...
}
5) Reboot

Даний мануал не мій, знайшов в мережі інтернет.