• Как правильно пропарсить access.log с python?

    adugin
    @adugin Куратор тега Python
    from collections import Counter, defaultdict
    from itertools import imap
    import re
    
    codes = ['200', '3xx', '4xx', '5xx']
    regex = re.compile('^.+?\[(?P<date>.+?) .+?\].+?(?P<code>\d+) \d+ ".+?" ".+?"$')
    stats = defaultdict(Counter)
    
    with open('access.log', 'r') as f:
        for date, code in (match.groups() for match in imap(regex.match, f) if match):
            stats[date].update([code if code == '200' else '{}xx'.format(code[0])])
    
    for date, items in sorted(stats.iteritems()):
        print date, ' '.join(str(items[code]) for code in codes)
    
    # ---------- И ещё вариант ----------
    
    from collections import Counter, defaultdict
    from itertools import imap
    from operator import methodcaller as mc
    import re
    
    codes = ['200', '3xx', '4xx', '5xx']
    regex = re.compile('^.+?\[(?P<date>.+?) .+?\].+?(?P<code>\d+) \d+ ".+?" ".+?"$')
    stats = defaultdict(Counter)
    
    def fmt(code):
        return code if code == '200' else '%sxx' % code[0],
    
    with open('access.log', 'r') as f:
        reduce(
            lambda _, (date, code): stats[date].update(fmt(code)),
            imap(mc('groups'), imap(regex.match, f)), None
        )
    
    for date, items in sorted(stats.iteritems()):
        print date, ' '.join(imap(str, imap(items.__getitem__, codes)))
    
    </code>
    Ответ написан
    2 комментария
  • Как правильно пропарсить access.log с python?

    sim3x
    @sim3x
    Ответ написан
    Комментировать
  • Виртуальный хостинг на Linux. Полный цикл настройки?

    Cram
    @Cram
    System Administrator
    Я использую Virtualmin.
    Немного донастроил - подключил nginx в качестве фронт-энда для apache.
    Остальное Virtualmin сам делает.

    Но он не решает проблему с установкой разных версий PHP.
    Ответ написан
    Комментировать
  • Виртуальный хостинг на Linux. Полный цикл настройки?

    Почитай про OpenStack, возможно это, что тебе нужно, Если есть вопросы - отвечу.
    Ответ написан
    Комментировать
  • Виртуальный хостинг на Linux. Полный цикл настройки?

    kumaxim
    @kumaxim
    Web-программист
    У меня есть один знакомый, админ своего маленького хостинга с 2006 года...(хотя с датой могу ошибаться, я работаю с ним с 2006). Проконсультировать лично думаю человек сможет, но будь готов выложить ему пару сотен у.е. за потраченное на тебя время.

    Если тебя это заинтересовало - дай знать, отпишись на мыло(у меня в профиле). Вначале темы письма укажи [toster]
    Ответ написан
    Комментировать
  • DevOps, управление конфигурациями. What is that?

    opium
    @opium
    Просто люблю качественно работать
    девопс по сути человек который занимается автоматизацией процессов внутри команды , по сути как админ был так и остался
    большую часть жизни этим занимаюсь раньше был просто линукс админ сейчас стал линукс девопс
    раньше просто люди новые компании открывали, а сейчас они стартапы.
    Ответ написан
    Комментировать
  • DevOps, управление конфигурациями. What is that?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    В СНГ под DevOps подразумевают "ну ты пиши код, но денег у нас на админа нет, поэтому ты ещё и админом будешь". Есть компании-исключения (крупные или работающие на иностранный рынок), но в большинстве своём оно именно так.

    CI, если говорить словами, а не заученным маркетинговым буллшитом, это то, что позволяет коду сразу после коммита попасть в review, после review на тестирование, после тестирования по кнопке в продакшн. Там ещё много бывает промежуточных этапов, но смысл в этом - закоммитили, проверили, кнопка - тестинг, кнопка - продакшн. Ах да, самое главное - без остановки работы сервиса в продакшне.

    Админу-саппорту лучше смотреть в сторону SRE - это более админская работа.
    Ответ написан
    Комментировать
  • DevOps, управление конфигурациями. What is that?

    afiskon
    @afiskon
    Если на пальцах, то:

    DevOps - это когда одни и те же люди выполняют роль как администраторов, так и программистов. За счет этого по идее достигается синергетический эффект, так как "админы" отлично понимают работу системы, "программисты" понимают что происходит на продакшене, какие проблемы возникают, можно срезать кое-где углы в плане документации например, и так далее.

    Управление конфигурацией, вообще-то говоря, не всегда (и скорее - не) связано с DevOps, так как тот же Amazon позволяет успешно обходится без нее, если собирать AMI образы системы и катить их. Это в частности является еще одним доводом за DevOps, дескать благодаря SaaS и облачным хостингам администрирование стало слишком простым, чтобы держать админов на фултайм.

    CI - это одна из "хороших практик" которая цена и сама по себе, не как часть DevOps. Когда ваша ветка мержится в development, запускается автоматическая сборка билда и прогона тестов (например, в Jenkins). Если после успешной сборки и прогона тестов билд еще и сам выкатывается в dev или stage окружение, это называется continuous delivery.

    На мой взгляд, как вектор развития следует рассматривать бесспорно, так как хороший админ должен всем этим владеть и в любом случае уметь программировать хотя бы небольшие программы на Ruby / Python.
    Ответ написан
    Комментировать
  • Как скопировать mysql таблицы с одного сервера на другой?

    @polozad
    А mysqldump сразу на другой сервер уже не вариант? Он по сети может. И насколько я помню, неблокирующего дампа myisam не придумали. Могу ошибаться.
    Ответ написан
    5 комментариев
  • DevOps, управление конфигурациями. What is that?

    @polozad
    Как правило DevOps - это пишущий код админ. То есть, администрирование широкого профиля, плюс написание своих продуктов вплоть до модулей ядра. Например, Игор Сысоев, автор nginx - вполне себе DevOps, написавший веб-сервер под свои нужды.
    Управление конфигурациями - это Chef, Puppet, Ansible - автоматизация конфигураций. Централизованное хранилище, которое позволяет подробно описать всё хозяйство - конфигурации машин, набор приложений, конфиги самих приложений, вплоть до того, что ты запускаешь клиент и идёшь пить чай. Через какое-то время у тебя полностью настроенный хост, готовый войти в продакшен.
    Continuous integration - это слегка из другой оперы. Подразумевает средство тестирования и выкладки кода, багтрекер, контроль версий и автоматизацию всего как единый процесс, это всякие Jenkins, Teamcity, Hudson и так далее .
    И да, первые два направления очень желательны. Без chef/puppet вообще сложно представить себе серьёзный проект, так или иначе он будет обмазан автоматизацией - мелкими скриптами и прочей наколеночной хренью. DevOps как промежуточное звено между кодером и админом - тоже очень серьёзная штука. Когда админ понимает как работает код, видит как применить тот или иной вызов системы, что такое COW и как тот же ruby гадит в память - это хороший админ.
    Параллельно DevOps есть такая штука как эксплуатация. Это более "обычные" админы, которые не пишут сложные вещи, предпочитая python и bash с perl, решая задачи автоматизации низкого уровня.
    Вообще, конечно, всё это дико размазано и в России не очень стандартизировано.
    Ответ написан
    4 комментария
  • Насколько эффективно знать языки программирования ?

    opium
    @opium
    Просто люблю качественно работать
    очень эффективно , куча денег, слава, женщины.
    Ответ написан
    Комментировать