Подскажите почему не работает
bash -c "function getppid { echo "xxx=$1"; }; getppid $$;"
$1 - пусто. Если создать файл xxx.sh запустить его, то нормально
bash -c "function getppid { echo "xxx=$1"; }; getppid $$;"
$1 - пусто. Если создать файл xxx.sh запустить его, то нормально
Выполнил команду через ssh, отключился от сервера - команда завершилась. Как сделать такое?
Как я могу находясь в ssh убить все процессы, созданные конкретным подключением? Допустим у меня 3 подключения и в одном я хочу убить все процессы, а в других не трогать ничего
В nodejs есть фича - создания бинаря из скрипта, а также в этот бинарь можно втюхать другой бинарь, ну и вообще любые assets. В самом коде после компиляции я получаю этот «втюханый» банарь в виде ArrayBuffer - короче в памяти он. Как мне его запустить собственно и получить результат? Сохранять на диск и выполнять через spawn это понятно (но теряется single-executable, а хочется чтобы красиво было, хоть и файлик раздуется до 200 мб - но что в наше время эти 200 мегов), какие другие варианты?
Поднял wireguard через amnezia, работало шикарно, но вчера начались лаги, потери пакетов большие. С чего начать, может какие то буфера переполняются? Бегло посмотрел - нет кучи соединений, проц не нагружен, сеть 10Gbps. СпидТест показывает 30bmps через тунель, правда часто Socker Error. Куда смотреть, с чего начать? Сам хост пингуется хорошо.
Через другой тунель на этом же компе, но через другой сервер - работает хорошо
UPD
Перезагрузил docker container - проблема исчезла (
Хочу на СмартТВ смотреть ютуб, он через вайфай. В наличии допотопный роутер. Есть сервер со своим ВПН(анмезия). Там есть wireguard.
Схема такая:
Телевизор ->
Роутер ВайФай ->
Мой комп, на котором установлен Docker на котором установлен docker-wireguard и который поднимает PPPoE в интернет
ВПН ->
Ютуб
Или купить Железную ВайФай плату и поставить ее в комп и выбросить роутер?
Или купить Железный ВайФай роутер со встроенным ВПН? Насколько его хватит? Насколько знаю, протоколы постоянно мониторятся Упырями и блокируются. Выбрасывать потом этот роутер?
Ладно, если остановится на моей тупой схеме, то я не пойму как настроить docker-wireguard как клиента, в доках нихера нет, а просто «Drop your client conf(s) into the config folder as /config/wg_confs/<tunnel name>.conf and start the container»
Нет описания «client conf». Может кто-то делал, поделится примерами конфигов?
Методом тыка, исходя из этого, что-то написал
[Interface]
[Peer]
Endpoint = remote_vpn_server_ip:38396
PublicKey = cnl4o9XhIuYFCknlEsrgnROsb2mCY1iIh3DmXV3YnwQ=
peer: flags=209<UP,POINTOPOINT,RUNNING,NOARP> mtu 1420
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
РКН блокирует ютуб с августа. Уже без ВПН ничего не посмотришь. Это раз. Второе, заметил что даже моего приложения android коснулось, не может законектиться к удаленному серверу, reset by peer. Через ВПН - ОК. Что за херня? Или мне показалось?
Перемещено leave из admin
Не могу соедениться с фтп(proftpd) сервером, а также с 80 портом(там nginx). Tcpdump смотрю - syn приходят на сервер, но ответа нет. Что может блокировать? В Ipdables нет никаких запрещающих правил.
Ubuntu jammy
Хочу принимать бабки на р/с в банке от ип/ооо, не принципиально. Принимать по интернету, конечно. Допустим у меня есть(еще нет) онлайн терминал/касса, там есть считыватель NFC. Я как понимаю этот терминал считывает номер,дату,ccv карты и передает эти данные в банк? Там происходит транзакция, с карты списываются бабки и поступают мне.
Вопрос, как мне удаленно по сети дать комманду терминалу чтобы он передал данные карты в банк и сформировалась транзакция, без нажатия кнопок вручную? Возможно ли такое вообще? Почему везде предланают посредников типа yookassa, robokassa?
Заметил, что часто в Chrome возникает ошибка при загрузке js скрипта(ов) net::ERR_CONNECTION_RESET. Сервер отдает с кодом 200 все нормально, далее браузер начинает качать файл (около 6MB) и в некоторый момент выдает вот эту ошибку. Кто сбрасывает соединение не понять
написал простой скрипт
for(var i=0; i < 10; i++){
fetch("https://example.com/js/app.js?v=" + i);
}
На интерфейсе пропадает ровно через каждые 24 часа ipv4 адрес. После перезагрузки службы networing сеть снова работает. Все логи пересмотрел, ничего нет. Сервер debian, имел uptime 2 года, ничего не трогалось и тут такое.
systemctl status networking
● networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2024-01-20 06:34:43 MSK; 1min 34s ago
Docs: man:interfaces(5)
Process: 1948759 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
Main PID: 1948759 (code=exited, status=1/FAILURE)
CPU: 52ms
Jan 20 06:34:43 ifup[1948759]: /sbin/ip -6 addr add 2001:41d0:602:4add::/56 dev eno1
Jan 20 06:34:43 ifup[1949035]: RTNETLINK answers: Permission denied
Jan 20 06:34:43 ifup[1948759]: ifup: failed to bring up eno1
Jan 20 06:34:43 ifup[1948759]: /bin/run-parts --exit-on-error --verbose /etc/network/if-up.d
Jan 20 06:34:43 ifup[1949038]: run-parts: executing /etc/network/if-up.d/000resolvconf
Jan 20 06:34:43 ifup[1949038]: run-parts: executing /etc/network/if-up.d/chrony
Jan 20 06:34:43 ifup[1949038]: run-parts: executing /etc/network/if-up.d/ethtool
Jan 20 06:34:43 systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
Jan 20 06:34:43 systemd[1]: networking.service: Failed with result 'exit-code'.
Jan 20 06:34:43 systemd[1]: Failed to start Raise network interfaces.
Хочу упростить модерирование путем автоматизации: автоматическое распознавание половых органов, голых частей тела и т.д. Первое что приходит какие то облака с AI, но не знаю есть ли такой сервис?
Есть ли такое в одном корпусе? Нужна плата или микроконтроллер, который бы имел выход в интернет через ethernet и wifi (желательно бы ещё и через gprs). Сейчас нашел только разные модули w5500(ethernet) и esp8266 (wifi). Если такого не производят, то на ум приходит только разместить эти два модуля на одной печатной плате и связать их через другой микроконтроллер посредством UART\SPI\ХЗ. Я в этом дилетант, посоветуйте по какому пути идти.
Нужно спроектировать макетную плату со следующими функциями
WiFi, Ethernet, Gprs etc (нужен tcp/ip стек для настройки устройства).
Порты ввода (будут подключаться датчики)
Порты вывода (будет подключаться нагрузка, например реле)
Подобрать популярные комплектующие, которые есть на aliexpress
По сути arduino, только нужно сделать компактней и на одной монтажной плате
Грубо говоря, в идеале, хочу плату размером в спичечный коробок, которая бы питалась от ааа батарейки и работало месяц и стоило 1000 руб. Понятно, что нереал, но отталкиваться от этого нужно.
Нужна больше консультация на первом этапе. Потом посмотрим что и как
Пока что готов заплатить 1000 руб. за небольшой ликбез в телеге, кто даст вводную. Дальше, если сойдемся, больше, по нарастающей
Здравствуйте!
Занимался тут летом всякими датчиками на arduino, сейчас решил возобновить тему. Решил отказаться от компа-шлюза и сделать полноценное устройство с выходом в интернет.
Прототип задачи в том, чтобы собрать устройство, подключить к нему датчик и чтобы управлялось оно через интернет. То есть, соединялось с удаленным сервером и принимала от него команды. Интернет хочу в идеале Wifi+Ethernet
Нашел
WiFi
Ethernet
УЗ Датчик
Я как понимаю мне ещё нужна «базовая» плата, к которой бы все это подключалось?
Нашел также Плату с WIFI на борту. Не совсем понимаю, это Arduino UNO? Что это за комплект по такой цене..?
В общем, я запутался, дайте пинка в нужном направлении.
Установил новый сервер, на нем raid1. Хочу raid0, чтобы больше места было.
Что было
cat /proc/mdstat
md127 : active raid1 sdb1[0] sdc1[1]
3141632 blocks super 1.2 [2/2] [UU]
mdadm /dev/md127 --grow --level=0
mdadm: level of /dev/md127 changed to raid0
cat /proc/mdstat
md127 : active raid0 sdc1[1]
3141632 blocks super 1.2 64k chunks
mdadm /dev/md127 --add /dev/md127 /dev/sdb1
mdadm: /dev/md127 not large enough to join array
fdisk -l
Disk /dev/sdb: 3 GiB, 3221225472 bytes, 6291456 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf4f86955
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 6291455 6289408 3G 83 Linux
Disk /dev/sdc: 3 GiB, 3221225472 bytes, 6291456 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x4e1043f4
Device Boot Start End Sectors Size Id Type
/dev/sdc1 2048 6291455 6289408 3G 83 Linux
Disk /dev/sda: 10.6 GiB, 11380449280 bytes, 22227440 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6cc04202
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 20226047 20224000 9.6G 83 Linux
/dev/sda2 20228094 22226943 1998850 976M 5 Extended
/dev/sda5 20228096 22226943 1998848 976M 82 Linux swap / Solaris
Disk /dev/md127: 3 GiB, 3217031168 bytes, 6283264 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes
//Переход на raid0, но будет 1 диск всего
mdadm /dev/md0 --grow --level=0
mdadm: level of /dev/md0 changed to raid0
//Увеличить размер массива и добавить 1 диск
mdadm /dev/md0 --grow --raid-devices=2 --add /dev/sdb1
mdadm: level of /dev/md0 changed to raid4
//тут будет делаться reshape, долго, в зависимости от объема
//потом перейдет снова на raid0
mdadm: level of /dev/md0 changed to raid0
//Далее нужно увеличить размер ФС, если без параметров, то увеличивается автоматом до всего доступного размера
resize2fs /dev/md0
Копаюсь тута в virtualbox, шаманю с жестким диском, колдую в общем. Сама проблема в том, что на реальном сервере в некоторые моменты времени очень большая задержка отправки\приема с rabbitMQ сервера. Тама отваливаются некоторые службы из-за этого по таймауту (можно конечно выставить большие тайауты, но хочу все же оттюнинговать диск и проблему решить в корне, если получится). То есть послал сообщение в rabbitMQ, тебе ответ пришел, обычно это занимает миллисекунды, но в некоторые моменты доходит аж до 3-6 сек! Графики(zabbix) показывают iowait 5%\48% (средн.\макс. значения за месяц). В связи с этим я пришел к выводу, что причина и узкое место на сервере это I\O и из-за него такие лаги с rabbitMQ.
Потом я начал грешить на raid1. Ядренный процесс jbd (в моем случае это jbd2/md2-8) который отвечает за журнализацию ext4, постоянно, без остановки, чем то занят, iotop этого процесса постоянно скачет 5..10...99%! Хотя, по сути, должен отрабатывать каждые 15 сек., ибо в параметрах монтирования raid1 я указал commit=15. То есть каждые 15 сек. должен записывать в журнал. Ещё я заметил, что если отключить zabbix-server, то процесс этот запускается как положено через каждые 15 сек. Почему так?
Посмотрел iotop ещё раз, нет других процессов с большим %, ну mysql промелькивает 0.05%, nginx и прочие потроха.
Что пробовал (три раза запуск)
dd if=/dev/zero of=/tmp/output.img bs=16k count=30k
838860800 bytes (839 MB, 800 MiB) copied, 1.05715 s, 794 MB/s
838860800 bytes (839 MB, 800 MiB) copied, 0.442051 s, 1.9 GB/s
838860800 bytes (839 MB, 800 MiB) copied, 9.11132 s, 92.1 MB/s
dd if=/dev/zero of=/tmp/output.img bs=16k count=70k
1174405120 bytes (1.2 GB, 1.1 GiB) copied, 6.25328 s, 188 MB/s
cat /etc/fstab
/dev/md3 / ext4 commit=15,errors=remount-ro,relatime 0 1
/dev/md2 /boot ext4 errors=remount-ro,relatime 0 1
/dev/sda4 swap swap defaults 0 0
/dev/sdb4 swap swap defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts defaults 0 0
mount | grep "/dev/md3"
/dev/md3 on / type ext4 (rw,relatime,errors=remount-ro,commit=15,data=ordered)
cat /proc/mdstat
md2 : active raid1 sdb2[1] sda2[0]
523200 blocks [2/2] [UU]
md3 : active raid1 sdb3[1] sda3[0]
1952461760 blocks [2/2] [UU]
bitmap: 15/15 pages [60KB], 65536KB chunk
unused devices: <none>
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 1.8T 1.4T 312G 83% /
devtmpfs 7.9G 0 7.9G 0% /dev
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 7.9G 772M 7.1G 10% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/md2 487M 23M 435M 5% /boot
overlay 1.8T 1.4T 312G 83% /var/lib/docker/overlay2/29d42b8f520821ac9c12919a53c6eb7f4b1cf25c63cd03fe7f2a3341e547a42f/merged
shm 64M 0 64M 0% /var/lib/docker/containers/c1d856a4dce5aeb0d0e67e4bdb1e2123a1a2fbecfbb4c4fdfe91b1d75bf0b8a8/mounts/shm
Total DISK READ : 68.09 K/s | Total DISK WRITE : 9.27 M/s
Actual DISK READ: 68.09 K/s | Actual DISK WRITE: 594.86 K/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND
313 be/3 root 0.00 B/s 426.44 K/s 0.00 % 73.82 % [jbd2/md3-8]
13682 be/4 bib 0.00 B/s 215.01 K/s 0.00 % 43.27 % nginx: worker process
15381 be/4 mysql 0.00 B/s 3.58 K/s 0.00 % 0.61 % mysqld
15396 be/4 mysql 0.00 B/s 3.58 K/s 0.00 % 0.02 % mysqld
15401 be/4 mysql 0.00 B/s 7.17 K/s 0.00 % 0.02 % mysqld
13678 be/4 bib 0.00 B/s 630.70 K/s 0.00 % 0.00 % nginx: worker process
13679 be/4 bib 0.00 B/s 3.58 K/s 0.00 % 0.00 % nginx: worker process
13680 be/4 bib 0.00 B/s 207.84 K/s 0.00 % 0.00 % nginx: worker process
13681 be/4 bib 64.50 K/s 731.03 K/s 0.00 % 0.00 % nginx: worker process
13684 be/4 bib 0.00 B/s 111.09 K/s 0.00 % 0.00 % nginx: worker process
13685 be/4 bib 0.00 B/s 723.87 K/s 0.00 % 0.00 % nginx: worker process
11076 be/4 root 0.00 B/s 3.58 K/s 0.00 % 0.00 % python /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
Хочу уменьшит время commit в ext4. Прописал в fstab commit=15, но в итоге процесс «jbd2/md3-8» постоянно что-то пишет, iotop показывает (10..90%). iowait у процессора все все время > 3. Почему так?
cat /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/md3 / ext4 commit=15,errors=remount-ro,relatime 0 1
/dev/md2 /boot ext4 errors=remount-ro,relatime 0 1
/dev/sda4 swap swap defaults 0 0
/dev/sdb4 swap swap defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts defaults 0 0
vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 1046520 5579576 115856 1263852 0 0 4 649 0 0 12 7 78 3 0
iostat
Linux 4.9.87-xxxx-std-ipv6-64 (3.livacha.com) 11/28/2022 _x86_64_ (8 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
12.17 0.00 6.74 3.10 0.00 77.99
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 47.06 769.66 5122.38 99346518945 661184744638
sdb 48.08 744.96 5122.43 96157784098 661192082738
md3 209.01 31.80 5104.15 4105132710 658832017368
md2 0.00 0.01 0.00 861337 22
В настройках nginx стоит
fastcgi_read_timeout 3s;
fpm соединение принудительно закрывается, но mysql запросы, которые были отправлены ранее, продолжают выполняться, потому что соединение не было закрыто в конце скрипта как положено. Я как понимаю в коде никак нельзя определить что тебя грохнул nginx? Хотелось бы закрывать соединение, прежде чем... Или в самом mysql что подкрутить? Пока что на ум приходят всякие wait_timeout...max_execution_time(которое не работает в сессии и глобально)
Хочу потестировать сайт на дос-атаку. Нужно как то симулировать много запросов с разных IP(для проверки всяких limit модулей ngix, iptables и самого сайта). Пока что делаю черех ab(apache bench).
Сейчас на ум приходит только добавить на интерфейс много (ну, хотелось бы хотя бы 5000) IP, но как потом заставить ab брать случайные IP...
Да, делаю это с той же машины с которой тестирую... Хотя идеально с удаленной, но тогда нужны реальные IP
следующие → |