Найти - Пользователи
Полная версия: Разобраться в констукции
Начало » Python для новичков » Разобраться в констукции
1 2 3
SharkyEXE
BM21

Здравствуйте.

Я можно, пожалуйста, максимальный синтаксис, как у меня
BM21
SharkyEXE
BM21Здравствуйте.Я можно, пожалуйста, максимальный синтаксис, как у меня
Это как?
SharkyEXE
BM21

Здравствуйте.

Да как бы взять мои строки и немного их изменить

Например, лично мне, не требуется усложнения моего кода этим, лишним

import stat
uid = os.getuid() # ID пользователя из под которого запущен процесс
if os.access(ntp_path, os.X_OK): # Если есть права на выполнение
elif 0 == uid or os.stat(ntp_path)[4] == uid: # Если скрипт запущен из под рута или пользователь под которым запущен скрипт является вдладельцем ntpdate
try:
os.chmod(ntp_path, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH) # выставляем 755
self.session.open(MessageBox, _("Ошибка установки времени(%i): %s" % (exit_code, out)), MessageBox.TYPE_ERROR)
Пожалуйста, просьба не обижаться, у меня проблема только когда надо - вывести сообщение ntpdate problem: Internet connection ok? Time server ok? - когда сервер неправильный написан и/или шнур интернета порван

Все остальное работает как надо
BM21
Залейте код пожалусто сюда http://pasted.co/ я копирую у меня отступы как-то криво разставлены.
SharkyEXE
BM21

Пожалуйста, вот оригинал тынц

Я Вас очень прошу, максимально, по смыслу, поправьте мои строки, без дополнительных проверок, рут прав и прочего

Мне нужно, чтобы 100%но появлялось сообщение ntpdate problem: Internet connection ok? Time server ok? в тех случаях, когда оно должно появляться

В каких случаях оно должно появляться - это Вы лучше меня по коду знаете
BM21
По поводу интернета можно проверять, на сообщение “no servers can be used, exiting”, например в выводе программы.
SharkyEXE
BM21

Здравствуйте.

Да нет, Вы меня не поняли.

Мне нужно, чтобы 100%но появлялось сообщение ntpdate problem: Internet connection ok? Time server ok? в тех случаях, когда оно должно появляться

В каких случаях оно должно появляться - код я приводил Вам, но оно не появляется

По поводу Ваешй мысли - “no servers can be used, exiting” - появляется сообщение ntpdate problem: Internet connection ok? Time server ok? , а вот окно self.session.open(MyConsole, _(“Системное время с NTP …”), ) не должно появляться
BM21
 def NTP_set(self):
    #if (config.plugins.SetClock.NTPName01.value == "" and config.plugins.SetClock.NTPName02.value == "" and config.plugins.SetClock.NTPName03.value == "" and config.plugins.SetClock.NTPName04.value == "" and config.plugins.SetClock.NTPName05.value == "" and config.plugins.SetClock.NTPName06.value == "" and config.plugins.SetClock.NTPName07.value == "" and config.plugins.SetClock.NTPName08.value == "" and config.plugins.SetClock.NTPName09.value == ""):
    #self.session.open(MessageBox, _("no timeserver configured!"), MessageBox.TYPE_INFO)
    #else:
    log_file = open('/usr/lib/enigma2/python/Plugins/Extensions/SetClock/log.txt', 'a')
    def execute_cmd(cmd):
        log_file.write("Начинаю выполнять команду: %s" % cmd)
        fo = popen(cmd)
        output = fo.read()
        exit_code = fo.close()
        log_file.write("Результат выполнения команды: %s; вывод: `%s`; код-завершения: %i" % (cmd, output, 0 if exit_code is None else exit_code))
        return output
    if os.path.exists(os.path.join(plugin_path, "ntpdate")):
        log_file.write("Программа существует по указанному пути")
        #Lite_OutPut_In_Console_1_stroke
        #cmd = '/usr/bin/ntpdate -b -t %s %s && echo "\n"' % (config.plugins.SetClock.timeout.value, config.plugins.SetClock.NTPName.value)
        #cmd = '%s%s %s %s && echo "\n"' % (plugin_path, "/ntpdate -b -t ", config.plugins.SetClock.timeout.value, config.plugins.SetClock.NTPName01.value)
        #cmd = '%s%s %s %s %s %s %s %s %s %s %s %s && echo "\n"' % (plugin_path, "/ntpdate -b -t ", config.plugins.SetClock.timeout.value, config.plugins.SetClock.NTPName01.value, config.plugins.SetClock.NTPName02.value, config.plugins.SetClock.NTPName03.value, config.plugins.SetClock.NTPName04.value, config.plugins.SetClock.NTPName05.value, config.plugins.SetClock.NTPName06.value, config.plugins.SetClock.NTPName07.value, config.plugins.SetClock.NTPName08.value, config.plugins.SetClock.NTPName09.value)
        #Extended_OutPut_In_Console_2_stroke
        #cmd = '/usr/bin/ntpdate -v -u %s %s && echo "\n"' % (config.plugins.SetClock.timeout.value, config.plugins.SetClock.NTPName.value)
        cmd = '%s%s %s %s && echo "\n"' % (plugin_path, "/ntpdate -v -u ", config.plugins.SetClock.timeout.value, config.plugins.SetClock.NTPName01.value)
        #cmd = '%s%s %s %s %s %s %s %s %s %s %s %s && echo "\n"' % (plugin_path, "/ntpdate -v -u ", config.plugins.SetClock.timeout.value, config.plugins.SetClock.NTPName01.value, config.plugins.SetClock.NTPName02.value, config.plugins.SetClock.NTPName03.value, config.plugins.SetClock.NTPName04.value, config.plugins.SetClock.NTPName05.value, config.plugins.SetClock.NTPName06.value, config.plugins.SetClock.NTPName07.value, config.plugins.SetClock.NTPName08.value, config.plugins.SetClock.NTPName09.value)
        res = execute_cmd(cmd)
        if res == "":
            cmd = "ls -l %s%s" % (plugin_path, "/ntpdate")
            res = execute_cmd(cmd)
            
        if res[3]!="x":
            cmd = "chmod 755 %s%s" % (plugin_path, "/ntpdate")
            res = execute_cmd(cmd)
            self.session.open(MessageBox, _("ntpdate problem: attributes for 'ntpdate' have not been correct! Fixed now! Try again!\n%s" % res), MessageBox.TYPE_INFO)
        else:
            self.session.open(MessageBox, _("ntpdate problem: Internet connection ok? Time server ok?"), MessageBox.TYPE_INFO)
       else:
            self.session.open(MyConsole, _("Системное время с NTP ..."), [cmd])
            self.close()
            self.close()
    else:
        log_file.write("Программа не существует по указанному пути")
        self.session.open(MessageBox, _("'ntpdate' не установлен !"), MessageBox.TYPE_ERROR)
    log_file.close()

Вот версия функцмии с логгированием каждого действия выполните и напишите рез-тат.
SharkyEXE
BM21

Здравствуйте.

Использовал Ваш код https://pastebin.com/gypSDjuY

Вот лог https://ru.files.fm/u/xtehrhqz или ниже

Программа существует по указанному путиНачинаю выполнять команду: /usr/lib/enigma2/python/Plugins/Extensions/SetClock/ntpdate -v -u  20 ntp99.vniiftri.ru && echo "
"Результат выполнения команды: /usr/lib/enigma2/python/Plugins/Extensions/SetClock/ntpdate -v -u 20 ntp99.vniiftri.ru && echo "
"; вывод: `23 Sep 19:05:16 ntpdate[924]: ntpdate 4.2.4p0@1.1472 Sat Apr 28 20:21:34 Universal 2007 (1)
`; код-завершения: 256
BM21
SharkyEXE
BM21Здравствуйте.Использовал Ваш код https://pastebin.com/gypSDjuYВот лог https://ru.files.fm/u/xtehrhqz или ниже
По логу программа выполняется как надо. То есть рустого вывода нигде нету. Программа отрабатывает как надо?
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