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

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

Moderator: Gen1us2k

Post Reply
User avatar
Gen1us2k
Модератор
Модератор
Posts: 771
Joined: 02 Mar 2010, 16:13

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

Post by Gen1us2k » 07 Feb 2012, 18:12

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

Code: Select all

#!/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 конец путя обязательно должен заканчиваться на /
Image
Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD
User avatar
Raven
Бородатый сис
Бородатый сис
Posts: 2791
Joined: 03 Mar 2010, 15:12
ОС: RHEL 8
Location: Из серверной

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

Post by Raven » 08 Feb 2012, 09:23

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

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

Post by Gen1us2k » 08 Feb 2012, 10:47

Raven
Да незачто %)
Image
Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD
Post Reply