خرید بک لینک
to sync 2 or more postgresql database that exist on seprate server (with specific IP) we have some way.  First we should tell about replication. replication uses when we want to make an backup from current exist postgresql DB. not a fix backup, an streaming replication that replicate each changes in primary DB on others backup DB. So we can use this to make a mirror server, but what happen if we use write query (e.g. insert, update) on the secondery db (backup db)? ok we should not allow to write on db because every change on backup db cause to dismiss data because new data has been written on that when update from primary db. So what should we do? we should forward write query to primary db and after primary DB changes the replication send new data to backup DB so the user think write on the DB really worked while the write query forwarded to primary DB. we start with Replication config.   1. Replication to make an replication server we only need to use this command: pg_basebackup -D /path/to/new/data/dir -R --slot=some_name -C -h host -p port -U dbuser it's realy a simple way to make an database for replication. note that this command should be run on the backup server, so `host` should the IP address of primary server. maybe you can not coect to primary srever because postgresql denied access to db from other remote server (only localhost access is allowed). so to change this you should change below file. /etc/postgresql/14/main/pg_hba.conf so you can ادامه مطلب

برچسب: نویسنده: سارا زارعی‌پور تاريخ: دوشنبه 21 خرداد 1403 ساعت: 16:03

به نام خدا.سلام داستان از اونجا شروع شد که برای انجام یکی از تسک ها نیاز بود از دو دستور زیر استفاده کنم: iptables -t mangle -A OUTPUT -p tcp --dport 443 -m mark --mark 1 -j ACCEPT iptables -t mangle -A OUTPUT -p tcp --dport 443 -j NFQUEUE --queue-num 0 این دستوارت مربوط به iptables هستند و دستور اول بیان میکنه که هر بسته ای به پورت مقصد 443 که با عدد ۱ مارک شده بود رو بپذیر در حالیکه دستور زیر به iptable میگه همه ی بسته هایی که به مقصد 443 میرن رو به NFQUEUE بفرست. NFQUEUE چی هست؟ عملا یک ویژگی توی کرنل لینوکس اضافه شده که میشه به کمک اون یک سری بسته ها رو درون یک صفی قرار داد که برنامه های یوزر اسپیس بتونن اونها رو پردازش کنن و اونها رو تغییر بدن یا جلوی بعضی از اونها رو بگیرند یا کلا ارسال اونها رو ادامه بدن و... منم هدفم همین بود که همه ی بسته های client hello رو در بیارم و دستکاری کنم پس از این استفاده کردم. همچنین برای استفاده از این قابلیت توی زبان سی باید از یک لایبراری به اسم libnetfilter_queue استفاده کرد و هدر هاش رو لود کرد و کتابخونه اش رو به برنامه پیوند زد. متاسفانه اون دو تا دستور اول مربوط به iptable توی دستگاه خطا میداد و عملا ساپورت نمیشد. خود iptable توی دستگاه بود اما ویژگی match mark و ویژگی NFQUEUE رو نداشتن. بعد از تحقیق متوجه شدم این ها همه به صورت کرنل ماژول هستن و حتی توی سیستم خوم هم که کار میکنه با lsmod میشه اونها رو دید. پس به این نتیجه رسیدم که اگه سورس image مربوط به دستگاه رو بگیرم و کامپایل کنم احتمالا بعدش میتونم توی کانفیگ لینوکس اش اون چیزایی که میخواهیم رو اضافه کنم. اما اینکار کمی طولانی به نظر میرسد و احساس کردم برای اجرای اینادامه مطلب

برچسب: نویسنده: سارا زارعی‌پور تاريخ: چهارشنبه 16 خرداد 1403 ساعت: 20:41

to create a Physical Volume:pvcreate /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg show current Physical Volumes: pvdisplay   to create Volume Groups: vgcreate media /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg shows currents Volume Groups: vgdisplay   to create Logical Volumes: lvcreate -n lv_media -L 76.40TiB to shows all Logical Volumes: lvdisplay   format Logical Volume: mkfs.ext4 /dev/media/lv_media inforamtion about all device mapper dmsetup info ادامه مطلب

برچسب: نویسنده: سارا زارعی‌پور تاريخ: سه شنبه 11 ارديبهشت 1403 ساعت: 16:53

به نام خداسلام. یک سری توضیحات از مفاهیمی که یاد گرفتم رو میخوام اینجا یادداشت کنم. OpenGL چیست؟ عملا OpenGL تنها یک استاندارد برای API مربوط به کار های گرافیکی است (مثل ایجاد یک شی سه بعدی، ایجاد سایه و...) که باید توسط درایور کارت گرافیک پیاده سازی شود. درایور کارت گرافیک موظف است این API را پیاده سازی کند و هر دستور آن را به چند دستور مربوط به پردازنده ی گرافیکی بشکند و برای GPU ارسال کند. این نکته را در نظر داشته باشید که GPU واحد های پردازشی مخصوصی برای رندر های گرافیکی دارد به عنوان نمونه واحد Shader وظیفه ی سایه زدن را دارد. Vulkan چیست؟ ولکان دقیقا مشابه OpenGL است که قرار است جایگزین آن شود. با توجه به پیشرفت تر شدن پردازنده های گرافکی و تغییر نیاز های رندر ها ولکان قرار است جایگزین OpenGL شود. MESA3D چیست؟در لینوکس MESA یک پیاده سازی از OpenGL و Vulkan است و این دستورات را گرفته و به کمک DRM برای پردازنده ی گرافیکی ارسال میکند. (عملا نوعی درایور کارت گرافیک OpenSource است). DRM: هر درایور کارت گرافیکی موظف است DRM را پیاده سازی کند. درایور کارت گرافیک اینتل که DRM را پیاده سازی میکند i915 نام دارد برای دیدن درایور که دارد DRM را هندل میکند از دستور زیر استفاده کنید: cat /sys/class/drm/cardX/device/driver/module/drivers   کارت گرافیک دارای چند Plane میباشد که به هر Plane یک فریم بافر اتچ شده است CRTC که یک واحد در DRM است وظیفه ی ادغام این Plane ها را دارد. به عنوان نمونه به کمک این قابلیت میتوان کرسر ماوس را یک Plane در نظر گرفت و عملا کرسر موس به صورت سخت افزاری روی صفحه نمایش داده میشود و لازم نیست هربار با تغییر ماوس صفحه مجددا رندر شود. یا ممکن است وقادامه مطلب

برچسب: نویسنده: سارا زارعی‌پور تاريخ: دوشنبه 20 فروردين 1403 ساعت: 17:05

Once in the boot menu of grub, select the boot entry you want to boot with your Up/Down keys and press e to edit the entry.
Then navigate down to the line that starts with linux and append break or break=<run-time> to make the boot process stop in the initramfs.

برچسب: نویسنده: سارا زارعی‌پور تاريخ: دوشنبه 20 فروردين 1403 ساعت: 17:05

به نام خدادر این پست قصد دارم توضیحاتی در مورد فرمت ELF خدمتتون ارائه کنم. این فرمت برای فایل های اجرایی و همچنین فایل های لینک پذیر مانند لایبراری های so استفاده میشود. این فرمت دارای هدر های متنوع و گوناگونی است. به کمک دستور readelf میتوان مشخصات یک فایل elf را بدست آورد.  در فایل elf دو نوع وجود دارد Segment و Secction به داده های موجود روی فایل section میگویند و به ساختاری که در حافظه ی ram ایجاد میشود segment گفته میشود. سکشن ها شامل موارد زیر است که میتوانند توسط برنامه نویس بیشتر هم شوند. .text .data .bss .symtab برای مشاهده ی کل شکسن هدر های برنامه از دستور readelf -S استفاده میشود. یکی از سکشن های مهم symbol table نام دارد که به صورت .symtab نمایش داده میشود. برای مشاهده ی تمام symbol ها از دستور readelf -s استفاده میشود. نام تمام متغیر های سراسری و توابع و فایل ها و سکشن ها توسط این دستور نمایش داده میشود (داخل این سکشن وجود دارد) همچنین نام فانکشن هایی که قرار است بعدا به برنامه لینک شوند با تگ UND به معنی تعریف نشده مشخص شده است. برای بررسی کد اسمبلی یک فایل اجرایی میتوان از دستور objdump -d استفاده کرد. اگر در کد اسمبلی به دستور call توجه کنید خواهید دید که آدرس توابعی که باید به آن ها پرش کنیم با صفر مشخص شده است (حتی توابع معمولی داخل فایل به شرطی که با gcc -c کامپایل شده باشند). سوال اینجاست که این آدرس ها چه زمانی و توسط چه کسی باید اصلاح شود؟پاسخ آن است که لینکر موقع لینک شدن (بعد از کامپایل) آدرس ها را جایگذاری میکند اما لینکر از کجا متوجه میشود که چه بخش هایی از کد باید با چه مقادیری تغییر کند؟ پاسخ اسن است که کامپایلر یک سکشن به نام Relocation Sectادامه مطلب

برچسب: نویسنده: سارا زارعی‌پور تاريخ: دوشنبه 20 فروردين 1403 ساعت: 17:05

سلامنزدیک ۲ ماه بود که درگیر سرعت پایین لینوکس بودم میدونستم که مشکل از منابع سیستم نیست چون سیستم من هم منابع خوبی داشت هم ویندوز که طبیعتا منابع بیشتری میخواد خیلی روون روش اجرا میشد. هرچی هم فرایندها و سرویس های در حال اجرا رو بالا پایین کردم چیزی نسیبم نشد چون هیچکدوم خیلی زیاد نه از سی پی یو و نه از رم استفاده میکردن کلا شاید ۲۰ درصد رم و ۲۰ درصد سی پی یو استفاده میشد و با این حال خیلی لگ داشت سیستم. حتی Desktop Envierment ام رو هم عوض کردم و از openbox استفاده کردم اما باز این مشکل وجود داشت دیگه واقعا اعصابم داشت بهم میریخیت چون حتی یه وبگردی ساده هم نمیتونستم انجام بدم. تا در نهایت یه جایی در مورد Power Mode خوندم و یادم افتاد که قبلا هم توی ویندوز این اتفاق میوفتاد که مصرف CPU رو به شدت پایین میاورد برای ذخیره ی باتری  دنبالش رو گرفتم و رسیدم به استک آور فلو و پیام آخر: در هر صورت تا به اینجای کار که به نظر مشکل حل شده. هیستوری دستورات رو اینجا میزارم:  7534  cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_goveor 7535  sudo pacman -S indicator-cpufreq 7536  cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_goveors 7537  cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_goveor 7538  cat /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_preferences 7539  echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference 7540  cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_goveor 7541  cat /sys/devices/system/cpu/cpu*ادامه مطلب

برچسب: نویسنده: سارا زارعی‌پور تاريخ: دوشنبه 14 اسفند 1402 ساعت: 16:15

this post I use to save only commands that uses in every day:

 

CAN Command:

 

modprobe mcp251x

rmmod mcp251x

 

ip link set can0 type can bitrate 500000

ip link set can0 up

 

cansend can0 123#12345678

 

---------------------------------

 

 

 

 

برچسب: نویسنده: سارا زارعی‌پور تاريخ: دوشنبه 14 اسفند 1402 ساعت: 16:15

سلام طبق تصویر بالا ابتدا یک کانکشن TCP با سرور پروکسی ساکس انجام میشود سپس یک پیام که حاوی ورژن ساکس (که در حال حاضر ۵ است) به همراه نحوه ی احراز هویت (که میتواند نداشته باشد) به سرور ارسال میشود سرور در پاسخ به ما میگوید که درخواست با شرایطی که گفتی اوکی بود سپس ما در یک درخواست دیگر آدرس سرور هدف و پورت آن را به سرور پروکسی اعلام میکنیم و سرور پروکسی نیز همان لحظه یک کانکشن TCP با سرور هدف باز میکند و یک درخواست موفقیت آمیز بودن آن را به ما اعلام میکند. حال ما هرچیزی را که به سرور پروکسی ارسال کنیم سرور پروکسی آن را برای سرور هدف ارسال میکند. به عنوان مثال در تصویر بالا ما ۰۵۰۱۰۰ را که نشان میدهد ورژن ساکس ما ۵ است و فقط یک راه احراز هویت داریم و دو صفر آخر هم به معنای این است که نمیخواهیم هیچگونه احراز هویتی انجام دهیم. 0x05 0x01 0x00 0x05 indicates SOCKS version 5. 0x01 indicates that one authentication method is supported. 0x00 indicates "No Authentication Required." درخواست دوم: 0x05 0x01 0x00 0x01 0x7F 0x00 0x00 0x01 0x04 0x00 0x05 indicates SOCKS version 5. 0x01 indicates the command to establish a TCP/IP stream coection. 0x00 is a reserved field. 0x01 indicates an IPv4 address type. 0x7F 0x00 0x00 0x01 is the destination IP address (127.0.0.1). 0x04 0x00 is the destination port (1024). و درخواست آخر نیز مربوط به درخواست HTTP GET هست که مستقیم برای سرور تارگت ارسال میشود. که اگر نتیجه ی آن را به استرینگ تبدیل کنیم خواهیم داشت: توجه کنید من در مثال خودم به سایت api.ipify.org درخواست داده بودم که آیپی خودم رو چک کنم و متوجه شدم که آیپی به درسادامه مطلب

برچسب: نویسنده: سارا زارعی‌پور تاريخ: يکشنبه 12 شهريور 1402 ساعت: 23:59

به نام خدا سلاموقتی که آرچ لینوکس رو نصب کردم در مراحل نصب وای فای به درستی شناخته میشد و کار میکرد اما هنگامی کمه آرچ لینوکس بالا میومد دیگه خبری از وایفای نبود به کمک چت جی پی تی مشکل حل شد. git clone https://aur.archlinux.org/rtw88-dkms-git.gitcd rtw88-dkms-gitmakepkg -sri  git clone https://github.com/lwfinger/rtw88.gitcd rtw88makesudo make install  sudo modprobe -r rtw88sudo modprobe rtw88  البته این دو تا دستور آخر کار نمیکنه لینوکس رو ریست کنید اوکی میشه ادامه مطلب

برچسب: نویسنده: سارا زارعی‌پور تاريخ: دوشنبه 15 اسفند 1401 ساعت: 13:28

به نام خدا سلام آخرین پروژه ای که روش کار کردم فیلیموکدی بود که مربوط میشه به تماشای فیلم های فیلیمو به وسیله مدیاسنتر قدرتمند Kodi تا الان هیچ اسکین یا add-on ای ایرانی برای Kodi ندیده بودم برای طراحادامه مطلب

برچسب: نویسنده: سارا زارعی‌پور تاريخ: سه شنبه 18 آذر 1399 ساعت: 6:56

ارایه پشتیبانی و خدمات: در حال حاضر، متداولترین روش کسب درآمد ، ارایه خدمات به همراه یک محصول متن باز است. یک پروژه متن باز را به صورت تصادفی انتخاب کنید، به احتمال خیلـی زیـاد میبینید کـه به هرحال نوادامه مطلب

برچسب: نویسنده: سارا زارعی‌پور تاريخ: سه شنبه 18 آذر 1399 ساعت: 6:56

به نام خدا سلام. فلاگ -I برای معرفی مکان include ها کاربرد داره که به صورت زیر میشه ازش استفاده کرد gcc test.c -o test -I/usr/include و فلگ -L هم برای معرفی مکان Library ها کاربرد داره. لایبراری ها دادامه مطلب

برچسب: نویسنده: سارا زارعی‌پور تاريخ: سه شنبه 18 آذر 1399 ساعت: 6:56

به نام خدا

سلام

بالاخره بعد از چند وقت تونستم وقت کنم و به کار های مورد علاقه ام بپردازم

یکی از کار های مورد علاقه من کامپایل لینوکس برای برد خودم هست.

کلا اینکه برنامه های Bare-Metal بنویسم

یعنی برنامه ای به زبان سطح پایین که به صورت مستقیم روی سخت افزار اجرا بشه بدون هیچ سیستم عاملی

ادامه مطلب

برچسب: نویسنده: سارا زارعی‌پور تاريخ: شنبه 6 ارديبهشت 1399 ساعت: 14:50

به نام خدا سلام سه تا سایت هست که آدرسشون رو میدم اونا توضیح دادن. ولی منم در اینجا سعی میکنم فارسی این موضوع رو توضیح بدم. خب میانه که یعنی یه لیستی از اعداد داشته باشیم، اونا رو مرتب کنیم و در نهایتادامه مطلب

برچسب: نویسنده: سارا زارعی‌پور تاريخ: يکشنبه 25 اسفند 1398 ساعت: 2:26

صفحه بندی