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

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

12.11.2021, 11:42. Показов 2809. Ответов 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
505 / 158 / 49
Регистрация: 27.02.2016
Сообщений: 818
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
505 / 158 / 49
Регистрация: 27.02.2016
Сообщений: 818
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
505 / 158 / 49
Регистрация: 27.02.2016
Сообщений: 818
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
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru