Прочесываем много папок и создаем .htaccess там, где его нет

bash, perl, python и прочие интерпретируемые скрипты

Модератор: Gen1us2k

Ответить
Аватара пользователя
Gen1us2k
Модератор
Модератор
Сообщения: 771
Зарегистрирован: 02 мар 2010, 16:13

Прочесываем много папок и создаем .htaccess там, где его нет

Сообщение Gen1us2k » 07 фев 2012, 18:12

В общем. Сегодня пришел в асю мессадж от Raven:
raven ( 17:25:57 )
можешь помочь? скрипт нужен - прочесать туеву хучу папок (ток 1-й уровень), если есть .htaccess - пройти мимо, если нет - создать с правами хозяина папки
Ну а что, взял и запилил его на питоне.

Код: Выделить всё

#!/usr/bin/env python
import os, sys, pwd, grp
root_dir = "/home/gen1us2k/Music/"

def getSubdir(root_dir):
  dirs = []
  for directory in os.listdir(root_dir):
    path = root_dir + directory + "/"
    if os.path.isdir(path):
      dirs.append(path)
      print path
    dirs.sort()
  return dirs

def getUser(path):
  stat = os.stat(path)
  uid = stat.st_uid
  user = pwd.getpwuid(uid)[0]
  return user

def getGroup(path):
  stat = os.stat(path)
  gid = stat.st_gid
  group = grp.getgrgid(gid)[0]
  return group

dirs = getSubdir(root_dir)
for dir in dirs:
  user = getUser(dir)
  group = getGroup(dir)
  file = dir + ".htaccess"
  try:
    open(file)
  except IOError:
    f = open(file, "w+")
    f.write("AllowOverride All\n")
    f.write("Order deny,allow\n")
    f.write("Allow from all\n")
    f.close()
    print file + " created"
    os.popen("chown " + getUser(dir) + ":" + getGroup(dir) + " " + file)
#    os.popen('chown %s:%s %s' % (getUser(dir), getGroup(dir), file))
Линк на гитхабе: https://github.com/gen1us2k/bash-script ... creator.py

ЗЫ возможные баги отписывайте ).
В root_dir конец путя обязательно должен заканчиваться на /
Изображение
Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

Re: Прочесываем много папок и создаем .htaccess там, где его

Сообщение Raven » 08 фев 2012, 09:23

Gen1us2k
Пасиб тебе дядько - выручил в трудную минуту!))))
Я не злопамятный, я просто часто ковыряю логи
Аватара пользователя
Gen1us2k
Модератор
Модератор
Сообщения: 771
Зарегистрирован: 02 мар 2010, 16:13

Re: Прочесываем много папок и создаем .htaccess там, где его

Сообщение Gen1us2k » 08 фев 2012, 10:47

Raven
Да незачто %)
Изображение
Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD
Ответить

Вернуться в «Скрипты»