Найти - Пользователи
Полная версия: проверка сервера
Начало » Python для экспертов » проверка сервера
1 2
Buldozer
Парни выпрямите мне пожалуйста руки,никак допереть не могу правильно ли я делаю. Нужно чтобы пинговался комп который подключается к серверу, если внешний массив отваливается,должна вылетать ошибка. 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)
FishHook
Трудно понять этот код.
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 на разных уровнях.
Buldozer
да,с elif меня не туда че-то понесло
Buldozer
Так наверно проще будет понять всю мою белиберду.есть 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
alexzander77
в одном проверяется доступность диска, во втором слушается порт.
что должен делать результат слияния?

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

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

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)
Buldozer
ясно,тогда очередной глупый вопрос чтобы он писал в файл with open('111.txt', ‘a’) as fout: этим не обойдешься?
Buldozer
или чтобы он выкидывал сообщение об ошибке или что все нормально
alexzander77
чтобыпечатал только сообщения об ошибке или наоборот - вставь проверку условия.
чтобы печатал в файл - открой файл для записи и пиши в него.

ну а вообще то сначала надо четко понять, что же именно тебе надо. ну и учебник прочитать.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB