روزنوشته های یک برنامه نویس

ZFS on alpine linux

دوشنبه, ۲۳ مهر ۱۴۰۳، ۰۲:۴۲ ب.ظ

# install packages

apk add zfs zfs-lts

# load kernel modules
modprobe zfs
modprobe spl

# enable kernel module
echo zfs >> /etc/modules

# activate services
rc-update add zfs-import boot
rc-update add zfs-mount boot
rc-update add zfs-share boot

zpool status

# create pool with first disk
zpool create zpool /dev/sdb

# add other disks
zpool add zpool /dev/sdc

zpool status

zfs set compression=lz4 zpool

# mount if not mounted
zfs mount zpool

ll /zpool/
zpool list

# expand a disk to avail size
zpool online -e zpool /dev/sdc

 

  • epi log

encrypted BTRFS multi-disk system

دوشنبه, ۲۳ مهر ۱۴۰۳، ۱۰:۰۹ ق.ظ

To set up an encrypted BTRFS multi-disk system in Alpine Linux, follow these steps:

Preparation

  1. Install necessary packages:

apk add btrfs-progs cryptsetup blkid

Encryption Setup

  1. Encrypt each disk partition you want to use:

cryptsetup luksFormat /dev/nvme0n1p2 cryptsetup luksFormat /dev/nvme0n1p3

  1. Open the encrypted partitions:

cryptsetup open /dev/nvme0n1p2 crypt1 cryptsetup open /dev/nvme0n1p3 crypt2

BTRFS Configuration

  1. Create a BTRFS filesystem across the encrypted partitions:

mkfs.btrfs -m raid1 -d raid1 /dev/mapper/crypt1 /dev/mapper/crypt2

  1. Mount the BTRFS filesystem:

mount /dev/mapper/crypt1 /mnt

  1. Create subvolumes:

btrfs subvolume create /mnt/root btrfs subvolume create /mnt/home

  1. Unmount the filesystem:

umount /mnt

  1. Mount the root subvolume:

mount -o subvol=root /dev/mapper/crypt1 /mnt

System Configuration

  1. Edit /etc/crypttab to include both encrypted partitions

  2. Modify /etc/fstab to mount the BTRFS subvolumes

  3. Update /etc/mkinitfs/mkinitfs.conf to include necessary features:

features="ata base cdrom btrfs keymap kms mmc nvme raid scsi usb cryptsetup cryptkey resume"

  1. Create a kernel hook to ensure proper boot setup
  • epi log

استفاده بهینه از limit در query از پایگاه داده - pagination

چهارشنبه, ۲۹ آذر ۱۴۰۲، ۰۹:۳۳ ق.ظ

در pagination برای کارایی بهتر؛ باید صفحه مورد نظر با فیلتر کرد و بعد از آن از limit استفاده کرد.

 


don't use:
    select * from A limit 450251, 10;
use:
    select * from A where id>450250 limit 10;

 

  • epi log

D1=/dev/loop6

D2=/dev/loop7


P=$(pwd)
LW=$P/lower-ro  # read only
U=$P/u
AL=$P/all       # writable

mkdir -p $AL $LW $U

mount -o ro $D1 $LW
mount -o rw $D2 $U

UP=$U/upper-rw  # writable
WD=$U/temp

mkdir -p $UP $WD

mount -t overlay -o lowerdir=$LW,upperdir=$UP,workdir=$WD overlay $AL

 

SITE

 

  • epi log

پورت فوروارد در ویندوز

سه شنبه, ۱۹ مرداد ۱۴۰۰، ۰۳:۰۶ ب.ظ

فرض کنید می خواهیم پورت محلی 3001 را به آدرس 192.168.7.11:22 فوروارد کنیم.

کافیست cmd را با Administrator اجرا کنید و دستور زیر را بزنید:

 

netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=3001 connectaddress=192.168.7.11 connectport=22

 

می توانید listenaddress را یکی از آیپی های محلی ویندوزتان قرار دهید تا فقط از آن آیپی فوروارد انجام شود.

این دستور را بزنید تا نتیجه را ببینید:

netstat -na | findstr 3001

 

 

  • epi log

memory error detector

دوشنبه, ۲۳ فروردين ۱۴۰۰، ۰۹:۰۴ ق.ظ

 

Valgrind is an instrumentation framework for building dynamic analysis tools. There are Valgrind tools that can automatically detect many memory management and threading bugs, and profile your programs in detail. You can also use Valgrind to build new tools.

The Valgrind distribution currently includes seven production-quality tools: a memory error detector, two thread error detectors, a cache and branch-prediction profiler, a call-graph generating cache and branch-prediction profiler, and two different heap profilers. It also includes an experimental SimPoint basic block vector generator. It runs on the following platforms: X86/Linux, AMD64/Linux, ARM/Linux, ARM64/Linux, PPC32/Linux, PPC64/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux, MIPS64/Linux, X86/Solaris, AMD64/Solaris, ARM/Android (2.3.x and later), ARM64/Android, X86/Android (4.0 and later), MIPS32/Android, X86/Darwin and AMD64/Darwin (Mac OS X 10.12).

SITE

  • epi log

security testing tool for linux

دوشنبه, ۲۳ فروردين ۱۴۰۰، ۰۹:۰۱ ق.ظ

 

Lynis is a battle-tested security tool for systems running Linux, macOS, or Unix-based operating system.

SITE

  • epi log

C garbage collector

دوشنبه, ۲۳ فروردين ۱۴۰۰، ۰۹:۰۰ ق.ظ

bdwgc

This is a garbage collecting storage allocator that is intended to be used as a plug-in replacement for C's malloc.

SOURCE

  • epi log

چک کردن ۳۲ یا ۶۴ بیتی بودن یک فایل اجرایی در لینوکس

چهارشنبه, ۲۰ اسفند ۱۳۹۹، ۱۱:۱۴ ق.ظ

od -An -t x1 -j 4 -N 1 bin_file

==> 1:x32  2:x64

منبع

  • epi log

لاگ query ها در mariadb

چهارشنبه, ۱۷ ارديبهشت ۱۳۹۹، ۱۱:۴۶ ق.ظ

; edit my.cnf

[mysqld]

general_log=ON
general_log_file=/tmp/my.log

;...

  • epi log