1. Python / Говнокод #8476

    −92

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    #! /usr/bin/python3.1
    import tarfile, os, datetime, time
    tudate = datetime.datetime.now()
    tud_date = list(tudate.timetuple())
    day = tud_date[2]; month = tud_date[1]; year = tud_date[0]; dyear = tud_date[7]
    tar_pwd = '/home/fess/Desktop/Server/arch/%d.%d.%d.tar.gz' % (day,month,year)
    pwd_bases = '/home/fess/Desktop/Server/arch'; archives = os.listdir(pwd_bases) # получаем список всех файлов в дирректории
    os.chdir(pwd_bases) # move arround the directory with the bases
    if os.path.exists(tar_pwd): pass # если архив с именем сегоднешней даты есть в папке, то ничего не делает
    else: # в противном случае создает архив            
            tar = tarfile.open(tar_pwd,'w:gz')
            tar.add('/home/fess/Desktop/Server/base/','bases')
            tar.close()
    for archive in archives: # Проверка каждого архива в папке с архивами
            stf = os.stat(archive); dayy = time.localtime(stf.st_mtime).tm_yday; m = dyear-dayy # узнаем дату создания арх и узнаем сколько ему дней (m)
            if m >= 50: # если архиву больше или 50 дней
                    os.remove(archive); print(archive,'was removed')# тогда удаляем архив которому больше 50 дней 
            if dyear < dayy: # Если сегодняшний день меньше чем дата создания файла(т.е. наступил новый год)
                    os.remove(archive); print(archive,'was removed')# удалить 49 оставшихся архивов с прошлого года

    зачетная катяшенция по моему вышла, бэкапчеГ ;)

    Запостил: fess, 10 Ноября 2011

    Комментарии (16) RSS

    • > #! /usr/bin/python3.1

      Сразу плюс.
      Ответить
      • ну я его просто исполняемым сделал ) и запускаю как ./
        Ответить
        • Это ясно, я про гвоздями прибитый путь. Лучше так: /usr/bin/env python3. Или обновление до python3.2 должно стать сюрпризом?)
          Ответить
      • да, управляющие комментарии, в этом есть определенное лицемерие )
        Ответить
    • Забудьте про точку с запятой.
      За двоеточием должно быть чисто.
      С Новым годом!
      Ответить
    • а так вообще как код?
      Ответить
    • а какой сокральный смысл в "list(tudate.timetuple())"? не нашел никаких мутаций этого списка. чем кортеж не угодил?
      Ответить
      • да вы правы, смысла нет я на днях убрал это, просто на тот момент моя голова подумала, что нужно конвертануть в список))
        Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий