Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / TimeOut для SSH клиента / 3 сообщений из 3, страница 1 из 1
16.10.2008, 17:40:44
    #35599025
TimeOut для SSH клиента
Имеется скрипт в нем используется scp . На сервере к которому пытается подключиться клиент бывает странный глюк:
ssh <имя_сервера>
login: <вводим_имя_пользователя>
passwd: <вводим_свой_пароль>
сервер сессию не рвет, но и к себе не пускает
...................................................
Как сделать так, чтобы клиент по истечению определенного времени отваливался.

Пробовал scp -o ConnectTimeout=60 <имя_удаленного_файл> <имя_локального_файла>
безрезультатно.
...
Рейтинг: 0 / 0
16.10.2008, 18:22:57
    #35599148
RAndrew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TimeOut для SSH клиента
timeout.c:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
#include <sys/types.h>
#include <signal.h>
#include <sys/wait.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

pid_t child_pid;
void print_usage(void){
	
	printf("usage: timeout <num> cmd\n");
}

void timedout(int signal){

	kill(child_pid, SIGTERM);
}

int main(int argc, char *argv[]){
	int secs;
	int child_status;

	if(argc <  3 ){
		print_usage();
		exit( 1 );
	}
	
	secs = atoi(argv[ 1 ]);
	if(secs <=  0 ){
		print_usage();
		exit( 1 );
	}

	switch(child_pid = fork()){
		case  0 :	execv(argv[ 2 ], argv +  2 );
				break;
		case - 1 :	printf("failed to execute command\n");
				break;
		default:	signal(SIGALRM, timedout);
				alarm(secs);
				wait(&child_status);
				return child_status;
	}
}

% gcc timeout.c -o timeout

использовать так:
./timeout 60 scp <имя_удаленного_файл> <имя_локального_файла>
аккуратней, если через 60 секунд scp не закончит работу, то он всё равно будет убит, даже если копирование в процессе.
...
Рейтинг: 0 / 0
16.10.2008, 18:26:26
    #35599157
TimeOut для SSH клиента
Вариант не подходит. Так как в случае успеха процесс копирования вполне может затянуться на время большее двух минут.
Интересно, что может помочь ssh клиенту понять, что серверу мягко говоря тупит? Логин спрашивает, пароль тоже, а вот дальше не пускает.
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / TimeOut для SSH клиента / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]