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

Запуск команд или скрипта через SSH

Сегодня рассмотрим примеры для запуска команд или скрипта через SSH соединения. Научимся запускать наши команды/скрипты из одной рабочей станции Linux на другой удаленной Linux машине. Рассмотрим практические примеры использования мощного инструмента SSH в администрировании Linux.






Запуск команд через SSH




Если вы хотите удаленно запустить какую-либо команду на сервере через SSH, то нет ничего проще. Давайте рассмотрим пару примеров.




Узнайте аптайм удаленного сервера:




ssh root@10.5.5.1 'uptime'




Узнать проходит ли пинг на удаленном сервере до google DNS:




ssh root@10.5.5.1 'ping 8.8.8.8 -c 5'




Перезагрузить удаленную машину:




ssh root@10.5.5.1 'reboot'




Запуск нескольких команд через SSH




В большинстве случаем недостаточно удаленно запустить только одну команду по SSH. Намного чаще необходимо отправить сразу несколько команд на удаленный сервер, например, для сбора информации и получить результат обратно.




Запустить несколько команд на удаленном хосте по SSH:




ssh ПОЛЬЗОВАТЕЛЬ@СЕРВЕР 'КОМАНДА1; КОМАНДА2; КОМАНДА3'




можно и так:




ssh ПОЛЬЗОВАТЕЛЬ@СЕРВЕР << EOF
КОМАНДА1
КОМАНДА2
КОМАНДА3
EOF




Практические примеры использования SSH




Узнайте аптайм и сколько свободного места на диске:




ssh root@10.5.5.1 'uptime; df -h'




Сколько используется памяти и среднюю нагрузку:




ssh root@10.5.5.1 'free -m ; cat /proc/loadavg'




Узнать версию ядра, количество ядер CPU и сколько всего RAM:




ssh root@10.5.5.1 << EOF
uname -a
lscpu  | grep "^CPU(s)"
grep -i memtotal /proc/meminfo
EOF




SSH: Запуск Bash Скрипта




Также бывает ситуация, когда на Linux сервере лежит какой-либо скрипт и его необходимо запустить по SSH на другом Linux сервере.




Основная идея заключается в том, чтобы подключиться на удаленный Linux сервер, дать скрипту выполнить свою работу и получить результат, при этом не копируя сам скрипт на удаленный сервер.




Эта задаче безусловно может быть выполнена и при этом довольно просто.




ssh root@10.5.5.1 'bash -s' < script.sh




Что если вы хотите выполнить сценарий с аргументом.




ssh root@10.5.5.1 'bash -s' < script.sh --argument




или




ssh root@10.5.5.1 'bash -s' < "script.sh --argument"




Если требуются привилегии sudo, то команда примет вид:




ssh root@10.5.5.1 'echo "passwords" | sudo -Sv && bash -s' < script.sh




  • password — пароль для пользователя root на удаленной машине.
  • script.sh — файл с вашим скриптом расположенный на станции с которой производите подключение.





2020-08-23T10:57:17
SSH

Как изменить разрешение экрана в Kali Linux Virtual Box

Вернемся к простыми подсказкам и приемам по Kali Linux.

В этому руководстве вы найдете ответ на вопрос : Как поменять резрешение рабочего стола в Kali Linux, используя Virtual Box? Читать

Команда parted в Linux

При переустановке системы, установке нового дистрибутива или просто реорганизации файловых систем мы часто имеем дело с жесткими дисками. Часто нужно добавлять, удалять или изменять размер разделов, управлять их флагами или конвертировать файловые системы. Для этого в Linux есть достаточно различных инструментов как с графическим интерфейсом, так и консольных. Разобраться в графическом интерфейсе Gparted, я думаю вам не составит труда, но в некоторых случаях бывает нужна разбивка жесткого диска на разделы linux в терминале, без доступа к Х серверу, а это может стать серьезной проблемой.

В этой статье мы разберем как выполнять основные операции, которые мы привыкли делать в Gparted, такие как разметка диска, удаление и создание раздела, в терминале, а поможет в этом команда parted Linux. Сначала рассмотрим саму команду parted.

Читать

Как установить MongoDB в Ubuntu 20.04

MongoDB — это бесплатная база данных документов с открытым исходным кодом. Он принадлежит к семейству баз данных под названием NoSQL, которое отличается от традиционных баз данных SQL на основе таблиц, таких как MySQL и PostgreSQL.

В MongoDB данные хранятся в гибких документах, подобных JSON, где поля могут отличаться от документа к документу. Для этого не требуется предопределенная схема, а структура данных может изменяться со временем.

В этой статье описывается, как установить и настроить MongoDB Community Edition в Ubuntu 20.04.

Стандартные репозитории Ubuntu включают устаревшую версию MongoDB. Установить последнюю версию MongoDB в Ubuntu довольно просто. Мы включим репозиторий MongoDB, импортируем ключ GPG репозитория и установим сервер MongoDB.

 

Установка MongoDB в Ubuntu 20.04

Для установки MongoDB в Ubuntu выполните следующие действия от имени пользователя root или пользователя с правами sudo:

  1. Установите зависимости, необходимые для добавления нового репозитория через HTTPS:
    sudo apt update

    sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common

  2. Импортируйте ключ GPG репозитория и добавьте репозиторий MongoDB с помощью:
    wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse'

    На момент написания этой статьи последней версией MongoDB была версия 4.4. Чтобы установить другую версию, замените ее на предпочитаемую версию.

  3. После включения репозитория установите мета-пакет mongodb-org, набрав:
    sudo apt install mongodb-org

    В вашей системе будут установлены следующие пакеты:

    • mongodb-org-server — Демон mongod и соответствующие сценарии инициализации и конфигурации.
    • mongodb-org-mongos — Демон mongos.
    • mongodb-org-shell — Оболочка mongo, интерактивный интерфейс JavaScript для MongoDB. Он используется для выполнения административных задач из командной строки.
    • mongodb-org-tools — Содержит несколько инструментов MongoDB для импорта и экспорта данных, статистики, а также другие утилиты.

  4. Запустите демон MongoDB и включите его запуск при загрузке, набрав:
    sudo systemctl enable --now mongod

  5. Чтобы проверить, успешно ли завершилась установка, подключитесь к серверу базы данных MongoDB с помощью инструмента mongo и распечатайте статус подключения:
    mongo --eval 'db.runCommand({ connectionStatus: 1 })'

    Результат будет выглядеть примерно так:

    MongoDB shell version v4.4.0

    connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb

    Implicit session: session { "id" : UUID("2af3ab0e-2197-4152-8bd0-e33efffe1464") }

    MongoDB server version: 4.4.0

    {

      "authInfo" : {

        "authenticatedUsers" : [ ],

        "authenticatedUserRoles" : [ ]

      },

      "ok" : 1

    }

    Значение 1 для поля ok указывает на успех.

 

Настройка MongoDB

Файл конфигурации MongoDB имеет имя mongod.confи находится в каталоге /etc. Файл в формате YAML.

В большинстве случаев достаточно настроек конфигурации по умолчанию. Однако для производственных сред мы рекомендуем раскомментировать раздел безопасности и включить авторизацию, как показано ниже:

sudo nano /etc/mongod.conf

/etc/mongod.conf

security:

  authorization: enabled


Параметр authorization включает управление доступом на основе ролей (RBAC), которое регулирует доступ пользователей к ресурсам и операциям базы данных. Если эта опция отключена, каждый пользователь будет иметь доступ ко всем базам данных и выполнять любые действия.

При редактировании файла конфигурации MongoDB перезапустите службу mongod, чтобы изменения вступили в силу:

sudo systemctl restart mongod

 

Чтобы найти дополнительную информацию о параметрах конфигурации, доступных в MongoDB 4.4, посетите страницу документации по параметрам файла конфигурации.

 

Создание администратора MongoDB

Если вы включили аутентификацию MongoDB, вам необходимо создать пользователя с правами администратора, который сможет получить доступ к экземпляру MongoDB и управлять им.

Доступ к оболочке mongo:

mongo

 

Изнутри оболочки MongoDB введите следующую команду для подключения к базе данных admin:

use admin


switched to db admin


 

Выполните следующую команду, чтобы создать нового пользователя с именем mongoAdmin, паролем changeMe и ролью userAdminAnyDatabase:

db.createUser(

  {

    user: "mongoAdmin",

    pwd: "changeMe",

    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]

  }

)


Successfully added user: {

	"user" : "mongoAdmin",

	"roles" : [

		{

			"role" : "userAdminAnyDatabase",

			"db" : "admin"

		}

	]

}


Не забудьте установить более надежный пароль. Вы можете назвать административного пользователя MongoDB как хотите.

После этого выйдите из оболочки mongo с помощью:

quit()


 

Чтобы проверить изменения, войдите в оболочку mongo, используя ранее созданного администратора:

mongo -u mongoAdmin -p --authenticationDatabase admin

use admin


switched to db admin


 

Запустите, show users и вы должны увидеть информацию о вновь созданном пользователе:

show users


{

	"_id" : "admin.mongoAdmin",

	"userId" : UUID("49617e41-ea3b-4fea-96d4-bea10bf87f61"),

	"user" : "mongoAdmin",

	"db" : "admin",

	"roles" : [

		{

			"role" : "userAdminAnyDatabase",

			"db" : "admin"

		}

	],

	"mechanisms" : [

		"SCRAM-SHA-1",

		"SCRAM-SHA-256"

	]

}


 

Вы также можете попытаться получить доступ к оболочке mongo без каких-либо аргументов (просто введите mongo) и посмотрите, можете ли вы перечислить пользователей, используя те же команды, что и выше.

 

Вывод

Мы показали вам, как установить и настроить MongoDB в Ubuntu 20.04. Для получения дополнительной информации по этой теме посетите руководство MongoDB.

Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.



2020-08-10T15:27:24
MongoDB

Как вывести список системных служб в Linux

Хотя systemd решает многие проблемы с управлением системой, иногда это также сбивает с толку. Даже такая простая задача, как перечисление системных сервисов, может заставить вас задуматься.

В этой статье мы покажем вам, как составить список системных служб. Мы также объясним вывод, чтобы вам было легче понять различные состояния служб.

Мы предполагаем, что у вас есть некоторые знания о systemd, но даже если вы этого не сделаете, все будет хорошо. Читать

Как в терминале переименовать каталоги в Linux

Переименование каталогов является одной из самых основных операций, которые вам часто приходится выполнять в системе Linux. Вы можете переименовать каталоги из файлового менеджера GUI с помощью пары кликов или с помощью терминала командной строки.

В этой статье объясняется, как переименовать каталоги с помощью командной строки.

Читать