Переменная предназначена для данных, а не кода. Определите функцию. Это также упрощает ваше цитирование.
#!/bin/bash
userName="user"
passWord="password"
tenantName="tenant"
commande () {
curl -X POST \
-H "Content-Type: application/json" \
-H "Cache-Control: no-cache" \
-H "Postman-Token: ..." \
-d@- \
http://controller:5000/v2.0/tokens <<EOF
{
"auth": {
"tenantName": "$tenantName",
"passwordCredentials": {
"username": "$userName",
"password": "$password"
}
}
}
EOF
}
Вышеупомянутое также считывает JSON из здесь-документа ( @ -
считывает аргумент для параметра -d
из стандартного ввода) вместо того, чтобы встраивать его в строку для дальнейшего упростить цитирование.
Тем не менее, также плохая идея вручную кодировать JSON таким образом, если вы не гарантируете, что значения userName
, passWord
и tennatnName
правильно закодированы в JSON. Лучшее решение - использовать что-то вроде jq
, чтобы сгенерировать для вас правильный JSON.
commande () {
json_template='{
auth: {
tenantName: $tn,
passwordCredentials: {
username: $un,
password: $pw
}
}
}'
jq -n --arg un "$userName" \
--arg pw "$passWord" \
--arg tn "$tenantName" "$json_template" |
curl -X POST
-H "Content-Type: application/json" \
-H "Cache-Control: no-cache" \
-H "Postman-Token: ..." \
-d@- \
http://controller:5000/v2.0/tokens
}
Headless RDP (сервер протокола удаленного рабочего стола )в системе на базе Ubuntu 16+.
Программное обеспечение:
Установите Mint 18 и обновите его.
Установите сервер ssh, чтобы сделать жизнь намного проще:apt-get install openssh-server
Пользовательская компиляция xrdp и xorgxrdp , поскольку репозитории Mint не включают или не имеют необходимой нам конфигурации.
Настройте Mint для компиляции, установив среду сборки .
sudo apt-get install build-essential
sudo apt-get install git autoconf libtool pkg-config gcc g++ make libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev
примечание :Я думаю, что для Ubuntu 16+ требуется еще 1 зависимость. Я не вижу этого в своих заметках, но вы очень быстро узнаете, когда «сделаете».
нашел:
sudo apt-get install libxfont1-dev
примечание :Для xorgxrdp требуется заголовочный файл от xrdp. Поэтому желательно сначала скомпилировать и установить xrdp.
получить и извлечь xrdp и xorgxrdp куда-нибудь вроде /opt
. Возможно, здесь нужно настроить разрешения. Плохая форма, но работает:sudo -R chmod 777 /opt
Запустите следующие команды cli:
xrdp
cd /opt/xrdp-0.9.1
./bootstrap
./configure --enable-fuse --enable-mp3lame --enable-painter
примечание:
make
sudo make install
sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin
xorgxrdp
cd /opt/xorgxrdp-devel
./bootstrap
./configure
make
sudo make install
Сделайте xrdp и xorgxrdp «службой», чтобы она запускалась при загрузке.
версия < Ubuntu 14
/etc/init.d/xrdp
(из установки. включить запуск при загрузке)
sudo update-rc.d xrdp defaults
--создает ссылки в каталогах rc.x
sudo update-rc.d xrdp enable
--начни прямо сейчас.
> Ubuntu 14 (Mint 18)
sudo systemctl enable xrdp
sudo service xrdp start
sudo systemctl status xrdp
sudo systemctl start xrdp
Конфигурационные файлы (некоторые)
/etc/xrdp/sesman.ini
/etc/xrdp/xrdp.ini
/etc/xrdp/startwm.sh
Это настройка в /etc/xrdp/xrdp.ini
, которую мы будем использовать:
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20
Не забудьте использовать другие или несколько рабочих столов. В этих файлах наряду с другими могут потребоваться корректировки. См. здесь для небольшой помощи в этом. При использовании рабочего стола Cinnamon никаких изменений не потребовалось.
Чтобы ваш Mint 18.x загружался из командной строки, в конце концов, это безголовая система.
Загрузка из командной строки
sudo nano /etc/default/grub
закомментируйте GRUB_CMDLINE_LINUX_DEFAULT=
и добавьте «текст» к GRUB_CMDLINE_LINUX
, как показано ниже:
#GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="text"
sudo update-grub
sudo systemctl set-default multi-user.target
Для запуска графического интерфейса из командной строки:
startx
Чтобы отменить изменение:
sudo systemctl set-default graphical.target