Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 28, 2012 10:52:42

Buldozer
Зарегистрирован: 2012-08-16
Сообщения: 49
Репутация: +  0  -
Профиль   Отправить e-mail  

проверка сервера

Парни выпрямите мне пожалуйста руки,никак допереть не могу правильно ли я делаю. Нужно чтобы пинговался комп который подключается к серверу, если внешний массив отваливается,должна вылетать ошибка. Z является внешним массивом.Если не трудно посмотрите пожалуйста.заранее говорю что это дубликат,потому что нигде не могут ответить.

import os
import socket
HOST = 'address'
PORT = 8000
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(HOST,PORT)
s.listen(5)
def archive_check():
		s2 = os.access("Z:\\TrassirArchive", os.F_OK)
		while True:
		    try:
			client, addr = s.accept()
			while True:
			    data = client.recv(1024)
			    if data:
				print("Data: %s" % data)
		    except Exception, ex: 
			    print("Some exception!\n",ex)
добавил кусок \\\
             try:
                     print("IP: {ip}".format(ip=addr))
                     print("Host: {name}".format(name=socket.gethostbyaddr(str(addr))))
             except (NameError, socket.error):
                   pass 
                    \\\\
		if s2 == True:
                        settings("archive/z")["read_only"] = 0
			timeout(30*1000)
			settings("archive/f")["read_only"] = 1
			settings("archive/d")["read_only"] = 1
                        #message("Архив работает") #%s") %s2)
			timeout(10*1000, archive_check)
		else:
			settings("archive/f")["read_only"] = 0
			settings("archive/d")["read_only"] = 0
			alert("Не доступен внешний массив!")# %s") %s2)
			timeout(10*1000, archive_check)
timeout(0, archive_check)

Отредактировано Buldozer (Авг. 28, 2012 11:36:36)

Офлайн

#2 Авг. 28, 2012 11:07:03

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

проверка сервера

Трудно понять этот код.

elif s2 == True:
А где же if?

while True:
		    try:
			client, addr = s.accept()
			while True:
			    data = client.recv(1024)
			    if data:
				print("Data: %s" % data)
		except Exception, ex: 
try и except на разных уровнях.



Отредактировано FishHook (Авг. 28, 2012 11:08:08)

Офлайн

#3 Авг. 28, 2012 11:16:04

Buldozer
Зарегистрирован: 2012-08-16
Сообщения: 49
Репутация: +  0  -
Профиль   Отправить e-mail  

проверка сервера

да,с elif меня не туда че-то понесло

Офлайн

#4 Авг. 28, 2012 12:02:10

Buldozer
Зарегистрирован: 2012-08-16
Сообщения: 49
Репутация: +  0  -
Профиль   Отправить e-mail  

проверка сервера

Так наверно проще будет понять всю мою белиберду.есть 2 скрипта их нужно слить в один

import os
def archive_check():
		s2 = os.access("Z:\\TrassirArchive", os.F_OK)
		if s2 == True:
                        settings("archive/z")["read_only"] = 0
			timeout(30*1000)
			settings("archive/f")["read_only"] = 1
			settings("archive/d")["read_only"] = 1
                      	timeout(10*1000, archive_check)
		else:
			settings("archive/f")["read_only"] = 0
			settings("archive/d")["read_only"] = 0
			alert("Архив работает!")# %s") %s2)
			timeout(10*1000, archive_check)
timeout(0, archive_check)


import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('localhost', 8000))
s.listen(5)
while True:
    try:
        client, addr = s.accept()
        while True:
            data = client.recv(1024)
            if data:
                print("Data: %s" % data)
     except Exception, ex: 
            print("Some exception!\n",ex)
            try:
                print("IP: {ip}".format(ip=addr))
                print("Host: {name}".format(name=socket.gethostbyaddr(str(addr))))
             except (NameError, socket.error):
                pass

Отредактировано Buldozer (Авг. 28, 2012 12:04:11)

Офлайн

#5 Авг. 28, 2012 12:25:32

alexzander77
От:
Зарегистрирован: 2009-01-27
Сообщения: 46
Репутация: +  1  -
Профиль   Отправить e-mail  

проверка сервера

в одном проверяется доступность диска, во втором слушается порт.
что должен делать результат слияния?

одновременно и проверять диски и слушать ?

думаю тут надо думать о потоках.
а еще лучше вообще не смешивать.



Офлайн

#6 Авг. 28, 2012 12:33:55

Buldozer
Зарегистрирован: 2012-08-16
Сообщения: 49
Репутация: +  0  -
Профиль   Отправить e-mail  

проверка сервера

тогда в таком случае что лучше использовать проверку или слух?

Офлайн

#7 Авг. 28, 2012 12:42:32

alexzander77
От:
Зарегистрирован: 2009-01-27
Сообщения: 46
Репутация: +  1  -
Профиль   Отправить e-mail  

проверка сервера

так этож две большие разницы.
что надо делать? какова задача?
мониторить доступность томов? первый скрипт облагородить и пусть работает.

import os
import time
paths={'e':'/windows/e',
       'g':'/windows/G',
       'f':'/windows/f',
       'z':'/usr/z'}
while True:
    print time.strftime("%d.%m.%Y %H:%M:%S")
    for name in paths.keys():
        print '%s acces - %s'%( name,os.access(paths[name],os.F_OK))
    time.sleep(1)



Офлайн

#8 Авг. 28, 2012 13:09:05

Buldozer
Зарегистрирован: 2012-08-16
Сообщения: 49
Репутация: +  0  -
Профиль   Отправить e-mail  

проверка сервера

ясно,тогда очередной глупый вопрос чтобы он писал в файл with open('111.txt', ‘a’) as fout: этим не обойдешься?

Офлайн

#9 Авг. 28, 2012 13:11:59

Buldozer
Зарегистрирован: 2012-08-16
Сообщения: 49
Репутация: +  0  -
Профиль   Отправить e-mail  

проверка сервера

или чтобы он выкидывал сообщение об ошибке или что все нормально

Офлайн

#10 Авг. 28, 2012 13:55:55

alexzander77
От:
Зарегистрирован: 2009-01-27
Сообщения: 46
Репутация: +  1  -
Профиль   Отправить e-mail  

проверка сервера

чтобыпечатал только сообщения об ошибке или наоборот - вставь проверку условия.
чтобы печатал в файл - открой файл для записи и пиши в него.

ну а вообще то сначала надо четко понять, что же именно тебе надо. ну и учебник прочитать.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version