По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Мессенджеры с каждым днем все больше и больше интегрируются в нашу жизнь. Это невольно наводит на мысль о «бесшовной» интеграции мгновенных сообщений и бизнес инструментов. Размышляя на этот счет, под наш исследовательский порыв попал популярный в России мессенджер Telegram и CRM Битрикс24. Нам захотелось присылать информацию о созданном лиде в Битриксе в групповой чат Telegram. Мы написали небольшой скрипт на .php и адаптировали его на Linux – машине. Что из этого получилось, спешим рассказать :) Попробовать Битрикс24 Бот в Телеграме Итак, первым делом создаем бота в Телеграме. В нашей базе уже есть пошаговый материал по созданию бота, поэтому, нажмите на кнопку ниже и пройдите по ссылке. Выполните все шаги, которые указаны в пункте «Создание бота в Telegram» - это займет примерно 5 минут. Как сделаете, переходим к следующему пункту. Создание бота Скрипт обработки Все ли получилось на этапе ранее? У вас должен быть токен вида 331754110:AAHkMNalOz5I_Schh2kvj7ONhRcE8HuKV-c и ID (идентификатор) группового чата. Если все на месте, то вашему вниманию предлагается сам скрипт (комментарии по ходу скрипта после двойного слеша //): <?php $token = "Ваш_токен"; // тут вводим ваш токен; $chat_id = "ID_чата"; // указываем идентификатор группового чата $lead_name=$_GET['name']; //получает методом GET название лида, ответственного, источник и его идентификатор; $lead_respons=$_GET['respons']; $lead_source=$_GET['source']; $lead_link=$_GET['link']; $lead_link1 = "https://ваш_домен_битрикс.bitrix24.ru/crm/lead/show/$lead_link/"; // данную конструкцию мы используем для того, чтобы корректно сформировать и отправить ссылку на лида в Telegram; #Оправляем в телеграм $hello = "<b>Здравствуйте, коллеги!</b>"; // формируем элементы массива (сообщения), который будем отправлять в сторону Telegram – API; $hello_1 = ""; $message = "В CRM Битрикс24 добавлен новый лид - "; $repons = "Ответственный - "; $src= "Источник - "; $link = "Ссылка - "; $arr = array( // формируем сам массив; $hello => $hello_1, $message => $lead_name, $repons => $lead_respons, $src => $lead_source, $link => $lead_link1, ); foreach($arr as $key => $value) { if ($key == "Ссылка - ") { $txt .= "".$key." ".$value."%0A";} else { $txt .= "".$key." ".$value."%0A"; }}; fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r"); // отправляем данные в сторону API Телеграма; Скачать скрипт После загрузки скрипта по ссылке, смените его расширение на .php Подставляем свои данные, сохраняем скрипт как bitrixtelegram.php и закидываем его в WEB - директорию вашего сервера (сервера в вашей сети). На нашем сервере мы используем web – сервер Apache на базе CentOS – наша директория /var/www/html/. Важно! Скрипт должен быть доступен по web из внешней сети (Битрикс24 будет обращаться к нему из бизнес – процесса). Мы рекомендуем использовать https, засекьюрить директорию, внутри которой будет находиться скрипт (например, дать ей имя v2I7TD9w3zo9QR7vg6ApNwDVvJOj9XbO61OJKdIyxI6d0. Тем самым, полный путь до директории будет /var/www/html/v2I7TD9w3zo9QR7vg6ApNwDVvJOj9XbO61OJKdIyxI6d0). Помимо этого, рекомендуем ограничить подключение к этой директории фильтрацией по IP (на уровне web – сервера и фаервола/маршрутизатора на уровне L3). После этого, в консоли сервера, в случае Linux, даем команды (путь к файлу скрипта у вас может отличаться): chmod 755 /var/www/html/v2I7TD9w3zo9QR7vg6ApNwDVvJOj9XbO61OJKdIyxI6d0/bitrixtelegram.php dos2unix /var/www/html/v2I7TD9w3zo9QR7vg6ApNwDVvJOj9XbO61OJKdIyxI6d0/bitrixtelegram.php Адаптация в бизнес – процесс в Битрикс24 Да – да, мы будем использовать вебхуки (Webhook). Это отличное средство, которое позволяет внедрять кастомные сценарии в обработку любой сущности в рамках Битрикс24. По факту, Битрикс просто будет кидать GET - запрос. Переходим к настройке. Открываем CRM → Настройки → Автоматизация → Бизнес - процессы → Лид → Добавить шаблон: Даем имя шаблону и указываем параметры запуска – «При добавлении». Внутри самого бизнес процесса, из правой палитры инструментов перетаскиваем элемент Webhook: В настройка вебхука, в поле в хендлер копируем следующую конструкцию: https://telegram.merionet.ru/ v2I7TD9w3zo9QR7vg6ApNwDVvJOj9XbO61OJKdIyxI6d0/ bitrixtelegram.php?name={=Document:TITLE}&respons={=Document:ASSIGNED_BY_PRINTABLE}&source={=Document:SOURCE_ID}&link={=Document:ID} Где: https://telegram.merionet.ru - хостовая часть, на которой расположился наш скрипт; v2I7TD9w3zo9QR7vg6ApNwDVvJOj9XbO61OJKdIyxI6d0 - директория в корне web – сервера, в которой лежит скрипт; bitrixtelegram.php - сам скрипт; ?name={=Document:TITLE}&respons={=Document:ASSIGNED_BY_PRINTABLE}&source={=Document:SOURCE_ID}&link={=Document:ID} - параметры, которые мы будем передавать в скрипт, а именно – имя лида, источник, ответственный и ID - лида; Проверяем :) Вручную добавляем лид в CRM: И вот что ждет нас в Telegram:
img
У вас проблемы с доступом к удаленному серверу через SSH? Если SSH отвечает сообщением «Connection Refused» (Соединение отклонено), возможно, вам придется изменить запрос или проверить настройки. Почему при использовании SSH возникает отказ в подключении? Существует множество причин, по которым вы можете получить ошибку «Connection Refused» при попытке подключения к серверу по SSH. Чтобы решить эту проблему, вам сначала нужно определить, почему система отказалась от вашего подключения через SSH. Ниже вы найдете некоторые из наиболее распространенных причин, которые могут вызвать отказ в соединении SSH. Клиент SSH не установлен Прежде чем устранять другие проблемы, первым делом необходимо проверить, правильно ли установлен SSH. На машине, с которой вы получаете доступ к серверу, должен быть настроен клиент SSH. Без правильной настройки клиента вы не сможете подключиться к серверу. Чтобы проверить, есть ли в вашей системе клиент SSH, введите в окне терминала следующее: ssh Если терминал предоставляет список параметров команды ssh, клиент SSH установлен в системе. Однако, если он ответит, что команда не найдена (command not found), вам необходимо установить клиент OpenSSH. Решение: установить клиент SSH Чтобы установить клиент SSH на свой компьютер, откройте терминал и выполните одну из команд, перечисленных ниже. Для систем Ubuntu / Debian: sudo apt установить openssh-client Для систем CentOS / RHEL: sudo yum установить openssh-client Демон SSH не установлен на сервере Так же, как вам нужна клиентская версия SSH для доступа к удаленному серверу, вам нужна версия сервера для прослушивания и приема соединений. Таким образом, сервер может отклонить входящее соединение, если SSH-сервер отсутствует или настройка неверна. Чтобы проверить, доступен ли SSH на удаленном сервере, выполните команду: ssh localhost Если на выходе отображается «Connection refused», переходите к установке SSH на сервере. Решение: установите SSH на удаленный сервер Чтобы решить проблему отсутствия сервера SSH, установите сервер OpenSSH. Учетные данные неверны Опечатки или неправильные учетные данные - частые причины отказа в SSH-соединении. Убедитесь, что вы не ошиблись при вводе имени пользователя или пароля. Затем проверьте, правильно ли вы используете IP-адрес сервера. Наконец, убедитесь, что у вас открыт правильный порт SSH. Вы можете проверить, запустив: grep Port /etc/ssh/sshd_config На выходе отображается номер порта, как на картинке ниже. Служба SSH не работает Служба SSH должна быть включена и работать в фоновом режиме. Если служба не работает, демон SSH не может принимать соединения. Чтобы проверить статус службы, введите эту команду: sudo service ssh status Вывод должен ответить, что служба активна. Если терминал отвечает, что служба не работает, включите его, чтобы решить проблему. Решение: включить службу SSH Если система показывает, что демон SSH не активен, вы можете запустить службу, выполнив: systemctl start sshd Чтобы служба запускалась при загрузке, выполните команду: sudo systemctl enable sshd Брандмауэр препятствует подключению SSH SSH может отклонить соединение из-за ограничений брандмауэра. Брандмауэр защищает сервер от потенциально опасных подключений. Однако, если в системе настроен SSH, необходимо настроить брандмауэр, чтобы разрешить SSH-соединения. Убедитесь, что брандмауэр не блокирует SSH-соединения, так как это может вызвать ошибку «Connection refused». Решение: разрешить SSH-подключения через брандмауэр Чтобы решить проблему, о которой мы упоминали выше, вы можете использовать ufw (Uncomplicated Firewall - несложный брандмауэр), инструмент интерфейса командной строки для управления конфигурацией брандмауэра. Введите следующую команду в окне терминала, чтобы разрешить SSH-соединения: sudo ufw allow ssh Порт SSH закрыт Когда вы пытаетесь подключиться к удаленному серверу, SSH отправляет запрос на определенный порт. Чтобы принять этот запрос, на сервере должен быть открыт порт SSH. Если порт закрыт, сервер отказывает в соединении. По умолчанию SSH использует порт 22. Если вы не вносили никаких изменений в конфигурацию порта, вы можете проверить, прослушивает ли сервер входящие запросы. Чтобы вывести список всех прослушивающих портов, запустите: sudo lsof -i -n -P | grep LISTEN Найдите порт 22 в выходных данных и проверьте, установлено ли для него STATE значение LISTEN. Кроме того, вы можете проверить, открыт ли конкретный порт, в данном случае порт 22: sudo lsof -i:22 Решение: откройте порт SSH Чтобы разрешить порту 22 слушать запросы, используйте команду iptables: sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT Вы также можете открывать порты через графический интерфейс, изменив настройки брандмауэра. Отладка и ведение журнала SSH Чтобы проанализировать проблемы SSH в Linux, вы можете включить подробный режим или режим отладки. Когда вы включаете этот режим, SSH выдает отладочные сообщения, которые помогают устранять проблемы с подключением, конфигурацией и аутентификацией. Существует три уровня детализации: уровень 1 (-v) уровень 2 (-vv) уровень 3 (-vvv) Поэтому вместо доступа к удаленному серверу с использованием синтаксиса ssh [server_ip] добавьте параметр -v и выполните: ssh -v [server_ip] В качестве альтернативы вы можете использовать: ssh -vv [server_ip] или ssh -vvv [server_ip]
img
В данной статье мы постараемся разобрать, как создать, отследить и завершить процесс. Посмотрим следующие задачки: Запуск задачи в активном и фоновом режиме; Заставить задачу выполнятся после выхода из системы; Отслеживать и сортировать активные процессы; Завершать процессы; Постараемся разобрать следующие понятия: Fg (foreground) и bg (background); Nohup (no hang up); Ps - информация об активных процессах; Pstree - дерево процессов; Pgrep - поиск процессов; Pkill - завершение процессов; Top - диспетчер задач; Free - загрузка оперативной памяти; Uptime - время и полнота загрузки; Screen - управление сессиями. Начнем разбирать данную тему с простой команды. Команда sleep man sleep С помощью данной команды мы можем выставить задержку на определенное время, собственно, о чем и написано в справочной статье. Она обычно пригождается, когда необходимо выполнить какой-то скрипт и компьютер должен немного подождать. В частности, мы можем посмотреть следующий пример: sleep 1000 - после данной команды, мы можем вводить в консоль различные символы, они будут появляться на экране но машина и операционная система не будет реагировать. Для того чтобы прервать нажимаем ctrl + c сочетание клавиш. Когда набираем команду, она начинает работать в активном режиме и занимает консоль, и мы соответственно ничего не можем делать. Так как компьютер у нас сейчас много задачный, процессор многозадачный, операционная система многозадачная, мы можем запускать какие-то процессы в фоновом режиме. Для того, чтобы это сделать необходимо набрать команду и в конце поставить знак амперсанда "". Т.е. мы получим следующее sleep 1000. Как, только мы написали команду плюс амперсанд и нажали Enter. Мы видим появился один процесс, и он бежит в фоновом режиме. Есть такая команда jobs, она показывает выполняющиеся задачи, бегущие процессы. И вот мы видим, что у нас есть одна выполняющаяся задача sleep на 1000 секунд. Мы можем еще запустить один sleep 999. Практического эффекта нету, данный пример необходим для наглядности процессов. Появился еще один процесс с отличным от прошлого id. Итого у нас 2 процесса. Теперь представим, что нам необходимо поработать с сервером, но в настоящий момент необходимо обновить, например, репозиторий или пакеты. Мы запускаем процесс обновления с амперсандом и продолжаем работу в обычном режиме, консоль стандартного вывода у нас свободна. Но если нам необходимо вернутся к процессу, который бежит в фоне. Мы можем использовать команду fg и номер процесса, например, 1 или 2. Так же сданной командой мы можем использовать PID, т.е. уникальный идентификатор процесса. Таким образом мы можем видеть, что мы оказались внутри указанного процесса. Для выхода нажимаем ctrl+z. И теперь данная задача будет остановлена. В чем можно убедится, используя команду job. И соответственно, чтобы запустить процесс используем команду bg #процесса. Небольшой итог: Есть команда, показывающая процессы jobs. И команды fg и bg, которые позволяют отправить процессы в фоновый режим и вернуть обратно. Команда PS man ps Согласно описанию, данная команда показывает снапшот текущих процессов. У данной команды очень много ключей, но очень часть данная команда используется в таком виде ps aux. Это означает вывести результат по всем пользователям, все процессы, даже запущенные вне нашего терминала. Это помогает, когда у нас много пользовательская среда, или мы запустили от имени суперпользователя, а сами переключились на текущего. Выглядит данная картинка примерно так: На данной картинке мы можем увидеть от имени какого пользователя процессы выполняются. Это снимок процессов системы, статический снапшот. Он выполнен на тот момент, когда мы подали команду на терминал. Внизу на картинке, можно увидеть наши sleep, значит они на момент ввода команды бежали в фоновом режиме. Кроме того, мы можем запускать данную команду, через pipeline. Например: ps aux | grep sleep Команда grep - отсортировать. И в данном случае мы увидим только два наших процесса. Мы так же можем убить процессы. Процессы убиваются командой kill PID (т.е по его ID). Вот таким образом мы можем завершить процесс. Запустим еще несколько процессов. Теперь мы можем их завершить массово с использованием их сортировки killall sleep например. Мы можем увидеть, что процессы завершились. Данная команда может быть полезно при зависании какого ни будь приложения. Действие данной команды работает, только в пределах пользователя от которого данную команду запустили. Если выполнять данную команду от root. То данная команда завершит процессы у всех пользователей с именем sleep. Если мы создадим процесс, а затем выйдем из терминала (команда exit). Заходя обратно выполняя ps aux мы так же в фоне увидим, что процесс выполняется. А набрав jobs мы не увидим данный процесс. Это происходит потому, что команда jobs показывает только текущие процессы запущенные из данной консоли. Есть такой тонкий нюанс. Если мы запускаем в нашем сеансе процессы, бэкграунд или активный режим, при завершении сессии наши процессы завершаются. Получается следующее, при подключении к серверу, через ssh все наши процессы запущенные при обрыве сессии прервутся. Например, мы запустим процесс обновления системы и завершим нашу сессию процесс обновления прервется. Чтобы у нас процессы не завершались при выходе из системы пользователя, есть команда nohup. Используем ее. nohup sleep 10000 Во-первых, данная команда позволяет заменить стандартный вывод на вывод в файл и во -вторых команда будет выполнятся, пока будет запущенна операционная система. Вне зависимости от наличия пользователя в системе, который запустил. Есть достаточно много нюансов. Можно логинится, разлогиниватся и попадать в тот же сеанс, а в современных Ubuntu уже практически нет необходимости использовать данную команду. Но все же, чтобы гарантированно процесс работал необходимо использовать данную команду. Теперь можно посмотреть команду pstree. Данная команда позволяет посмотреть все процессы в иерархическом виде дерева. На картинке, четко виден родительский процесс systemd, который запускает все остальные процессы. Например sshd - подключение к серверу, которое запускает bash - интерпретатор, далее запускается sudo , su и pstree в самом конце. Есть еще интересные команды pgrep и pkill. Есть просто запустить pgrep то данная команда ничего не выдаст. А если в совокупности с ключами и названием процесса, то данная команда вернет идентификационный номер данного процесса. Мы так же можем добавить ключ -l, то команда вернет и название процессов. У нее много других ключей. Можно, например, команде сказать pgrep -u root -l, т.е показать все процессы пользователя root. Следовательно, команда pkill позволяет убить все эти процессы. Например: pkill sleep. Мы убили все процессы sleep. В реальной же ситуации, мы обычно используем команду top. Данная команда позволяет наблюдать и не только в режиме реального времени за процессами. Посмотрим на данные выводимые данной утилитой. Мы видим, что по умолчанию данная утилита сортирует по загрузке процессора. Мы можем перейти в режим помощи нажав клавишу "h". Ключей и опций у данной утилиты достаточно много. Можно воспользоваться клавишами """", для переключения сортировки, например на сортировку по загруженности оперативной памяти. В данной утилите мы можем сказать, что необходимо завершить той или иной процесс. Практически он аналогичен Диспетчеру задач в операционной системе windows. Для того, чтобы убить процесс нажимаем клавишу "k" и система ждет ввода PID процесса. По умолчанию он берет тот PID, который находится в самом верху. Т.е. по факту самый загружающий процесс систему. Если у нас, что-то висит, то достаточно удобно завершить такой процесс. После ввода PID система запросит, какой сигнал ей необходимо послать по умолчанию сигнал номер 15 или sigterm - т.е. сигнал завершения работы в мягком режиме. Если мы хотим использовать более жесткий вариант отправляем цифру 9, или sigkill. В таком случае операционная система, очень жестко потушит процесс наплевав на зависимые процессы от данного и те процессы от которых зависит данный процесс. Команда uptime man uptime Данная команда показывает, как долго у нас запущена система. Сам по себе эти данные нам ничего не дают. Данная команда. полезна в контексте, если нам передали сервера, и мы видим у них очень большой аптайм, следовательно, сервера не обновлялись и не перезагружались. Данная команда полезна помимо параметра сколько запущенна системаданная команда показывает общую загрузку системы. Это показывают три цифры в выводе данной команды. Там достаточно сложная формула по которой рассчитывается данный параметра, во внимание принимается загрузка ЦП, жестких дисков, оперативной памяти. Первая цифра - это загрузка в минуту, вторая цифра - это загрузка в последние пять минут и третья цифра - это загрузка в последние 15 минут. Исходя из последней картинки, цифры примерно одинаковые, а значит нагрузка равномерна. Если цифры скачут, значит необходимо анализировать, особенно если на сервере есть просадка по производительности. Команда free man free Данная команда показывает свободное и используемое количество памяти в системе. И в данном случае, так же, как и в windows task manager, под памятью понимается оперативная память, так и файл подкачки (windows), раздел подкачки (swap Linux). Swap раздел, это раздел системы используемый для ее нужд если системе не хватает оперативной памяти. Это раздел на жестком диске, который используется в качестве оперативной памяти. Но жесткий диск значительно медленней оперативной памяти, поэтому сначала заполняется оперативная память, а только потом используется раздел подкачки (swap). Команда screen man screen Она есть не во всех дистрибутивах по умолчанию. Эта команда, которая позволяет создать типа оконного менеджера. Это удобно, когда подключаешься по ssh и получаешь, как будто бы несколько окон в пределах одного терминала. Понятно, что современные ssh клиенты позволяют открыть сколько угодно вкладок и работать с ними параллельно. Запускаем screen. Переходим во внутрь screen, запускаем какую-нибудь команду, например, ping ya.ru. Далее нажимаем ctrl+a и затем d и получаем: Первая команда позволяет находится в текущем окне, а вторая клавиша d позволяет свернуть текущий скрин. Теперь можно закрывать терминал, вылогиниваться из консоли. Процесс запущенный в скрине будет работать. Для того, чтобы восстановить окно с процессом достаточно ввести screen -r и мы вернемся к бегущему процессу. Для того, чтобы завершить screen необходимо внутри ввести exit. Если у нас есть потребность запустить несколько окон, то можно это сделать следующим образом: Screen -S yandex ping ya.ru, screen -S rambler ping r0.ru Где yandex и rambler - это просто названия окон (alias) Просмотреть бегущие окна: screen - ls Чтобы вернутся к нужному окну вводим screen -r alias
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59