Архив метки: linux

RabbitMQ — отправка и чтение очереди через curl

Данный запрос можно делать даже из bash в Linux так как используются стандартные инструменты.

Все необходимое (обменник, очереди) можно создать через WEB-интерфейс RabbitMQ Managment. Предполагаем , что они уже созданы.

Отправляем сообщение в очередь.

В примере ниже :

vhost — имя хоста (exchanges)

delivery_mode 2 — записываем в режиме когда данные очереди сохраняются даже после падения сервера (сохраняются на диск)

routing_key — имя нашей очереди

payload — в данном случае строка , которую мы передаем в сообщении

%2F/amq.default — имя обменника внутри хоста

curl -s -u user:password -H "Accept: application/json" -H "Content-Type:application/json" -X POST -d'{
    "vhost": "Test_Virtual_Host",
    "properties": {
        "delivery_mode": 2,
        "headers": {}
    },
    "routing_key": "testqueues",
    "payload":"/dfgdfgfd/dfgdfg/dfgdfgfdg.dat",
    "headers": {},
    "props": {},
    "payload_encoding": "string"
}' http://127.0.0.1:15672/api/exchanges/%2F/amq.default/publish

Читаем сообщение.

curl -s -u user:password -H "content-type:application/json" -X POST -d'{
"count":2,
"ackmode":"ack_requeue_false",
"encoding":"auto",
"truncate":5000
}' http://127.0.0.1:15672/api/queues/%2F/testqueues/get

Удалить обменник через curl.

curl -s -u admin:1234567890 -X DELETE http://127.0.0.1:15672/api/vhosts/Test_Virtual_Host

Linux Kali — подключаемся через RDP

Для включения RDP в Kali Linux нужно установить сервер XRDP далее включить автозагрузку

Устанавливаем cервер XRDP:

apt-get install xrdp

Запускаем и добавляем в атозапуск xrdp:

service xrdp start
service xrdp-sesman start
update-rc.d xrdp enable

Для более менее комфортной работы поменяй в настройках RDP качество изображения на 16bit и сделайте однотонную заставку на рабочий стол.

бака за компом

PHP — запрос-ответ через Curl с сервера Linux

С сервера передаем POST-запрос и получает результат- ответ через стандартную утилиту curl в Linux:

curl -so result.txt http://mainserver.ru/test.php -d"first=Dima&last=Vova"

Ключи в curl : s — тихий режим, без вывода дополнительной информации при выполнении
o — сохранить результат в файл

На стороне принимающего сервера PHP-скрипт:

<?php
$test1 = htmlspecialchars($_POST["first"]);
$test2 = htmlspecialchars($_POST["last"]);
$time = date('U');
echo "{\"time\":$time,\"first\":$test1,\"last\":$test2}\n";

В результате на сервере с которого делаем запрос, получаем файл с результатом:
{«time»:1579160382,»first»:Dima,»last»:Vova}

Если grep:argument list too long — ищем данные в несколько потоков

Бывает, если у вас большое количество файлов и вы хотите использовать для этого стандартный grep (например: grep -h pattern ./*), то вполне можете получить сообщение : argument list too long .

Чтобы избежать этого, можно использовать find и для ускорения процесса (железо вам позволяет это делать), то можно распаралелить потоки и воспользоваться следующей командной:

find . -type f -print0 | xargs -n1000 -r0P3 grep pattern

Где:

-n1000 — одновременно максимум 1000 файлов

P3 — используем паралельно 3 процессора

pattern — ваша строка для поиска