Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 12.11.2021
Сообщений: 4

Скрипт для подключения по ssh, запуск бекапирования postgres, скачивание бекапа

12.11.2021, 11:42. Показов 2833. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется windows с установленным git bash
Отдельно есть скрипт для подключения по ssh с прокидованием порта 5432 на кастомный локальный
Отдельно есть скрипт для бекапа

Хочу обьединить все в одно. Сложность в том что ssh должен запускатся в отдельном окне и ыисеть фоном во время бекапа, как это реализовать?

пусть
Code
1
connect-ssh.sh
- скрипт для подключения к серверу по ssh (открывает терминал)
Code
1
backup.ssh
- скрипт бекапа

Теперь нужно чтобы один скрипт запускал
1. connect-ssh.sh и держал в фоне
2. запускал после установки соединения backup.ssh
3. после выполнения backup.ssh закрывал соединение connect-ssh.sh
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.11.2021, 11:42
Ответы с готовыми решениями:

Проброс 22 порта для подключения по ssh
Всем привет, решил тут пробросить 22 порт на роутере mikrotik, включил ddns, добавил вот такую вот настройку в nat Но через Putty не...

Первичная настройка CentOS для подключения по SSH
Добрый день. Прошу указать на ошибку и подсказать по дальнейшим действия. На пк windows 10 (VirtualBox-5.2.18-124319-Win) установил...

Как считывать данные для подключения по ssh из файла?
while $read !== 0 do read /home/oleg/ooo.txt; do ssh $com per = 'find httpd' cd ~/$per/ ; done ну и создать файл тектовый...

5
507 / 160 / 49
Регистрация: 27.02.2016
Сообщений: 830
13.11.2021, 04:38
вы просто можете запустить произвольный скрипт удаленно через ssh

Code
1
2
ssh sergueik@192.168.0.29 'echo 123; echo 345'
sergueik@192.168.0.29's password:
Code
1
2
123
345
консоль будет открыта все время пока команда будет выполняться потом консоль закроется
0
0 / 0 / 0
Регистрация: 12.11.2021
Сообщений: 4
16.11.2021, 04:30  [ТС]
Спасибо
Еще столкнулся с таким моментом:
Команда
Code
1
ssh server > /dev/null 2>&1 |& "C:\Program Files\PostgreSQL\12\bin\pg_dump.exe" --file "$filename" --host "localhost" --port "5432" --username "u" --no-password --verbose --format=c --blobs "db"
Не завершается. ssh подключение происходит, бекап выполняется и выполнение зависает на последней строке с инфо (бекап содержимого последней таблицы)
При этом физически бекап выполнен полностью, здесь скорее команда не считается завершенной и строки ниже этой начинают выполнятся только когда сервер отключает мою сессию
как можно испраивть?
0
507 / 160 / 49
Регистрация: 27.02.2016
Сообщений: 830
16.11.2021, 05:28
Лучший ответ Сообщение было отмечено abobass как решение

Решение

похоже пайплайн из ssh в iex не проходит
почему вы обязательно хотите в одну строку ?

запишите текст выход ssh в файл и скармливайте постресу под виндоз из файла
0
0 / 0 / 0
Регистрация: 12.11.2021
Сообщений: 4
16.11.2021, 06:17  [ТС]
Не силен в shell, написал просто методом проб и ошибок. Запись в одну строку свою задачу выполняет в отличие от остальных вариантов
Если команду упростить до
Code
1
ssh server > /dev/null 2>&1 |& "C:\Program Files\PostgreSQL\12\bin\pg_dump.exe" --file "$filename" --host "localhost" --port "5432" --username "u" --no-password --verbose --format=c --blobs "db"
Code
1
A |& B
Тогда как можно убить А, после выполнения B?
И убить B по таймауту?
0
507 / 160 / 49
Регистрация: 27.02.2016
Сообщений: 830
16.11.2021, 07:23
Лучший ответ Сообщение было отмечено abobass как решение

Решение

в виндоз для заершения испольуют taskiill.exe
типа
Code
1
2
TASKKILL /F /IM ssh.exe /T
TASKKILL /PID 1230 /T
у цмд плохо с получением pid созданных процессов...
повершел получает пид процесса который запускает и есть еще способ
Code
1
stop-process
помимо taskkill

Добавлено через 36 минут
то есть для Mingw баша можно написать вот такое



Code
1
2
3
4
5
6
7
8
9
10
#!/bin/sh
EXECUTABLE=${1:-notepad.exe}
 
start $EXECUTABLE
sleep 10
WINPID=$( ps -a -W | grep $EXECUTABLE | awk '{print $5}')
#      PID    PPID    PGID     WINPID   TTY         UID    STIME COMMAND
start taskkill.exe -T -PID $WINPID
 
start taskkill.exe -T -F -IM $EXECUTABLE
Code
1
/usr/bin/start
это баш скрипт:

Code
1
"$COMSPEC" //c start "${@//&/^&}"
Добавлено через 6 минут
прощу прощения не 5 а 4

Code
1
WINPID=$( ps -a -W | grep $EXECUTABLE | awk '{print $4}') # четыре
Добавлено через 3 минуты
для обычных юникс процессов разумеется применяется обычный кил пид
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.11.2021, 07:23
Помогаю со студенческими работами здесь

Как кодом создать ssh - туннель для подключения к базе данных?
Создал базу данных MySql на https://mchost.ru, решил попробовать подключиться к базе но возникли проблемы. Код который писал ...

PUtty как подключиться к ssh без подключения к командной строке
Повторюсь доступ нужен ТОЛЬКО ДЛЯ ТРАФФИКА! У моего сервера нет поддержки удаленного терминала (коммандной строки). ssh нужен только для...

Установка библиотеки php_ssh2.dll или libssh2 для удаленного подключения через ssh
Как я понимаю для работы по протоколу SSH в php сначала нужно установить libssh2 и внести изменение в файл php.ini. Примерно вот такое: ...

Скрипт бекапа каталога
Необходимо написать скрипт для бакапа каталога с периодам раз в 5 минут, в каталог архива с именем типа dir-date-time.tgz, где dir: имя...

Подключение к RDP, запуск бекапа, копирование лога
Подскажите возможно ли сделать следующие на C#? И если возможно - желательно примерчик или ссылку на необходимое. 1) подключиться к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru