Есть фаил со списком пользователей. Вида:
-------------------
user1
user2
user3
-------------------
Нужно для каждого юзера :
1) Создать именную папку.
2) Скопировать шаблонный конфиг template.xml в эту папку
3) И поместит его имя в строчки вместо иксов..
<username> xxxxx<username>
<password>xxxxx<password>
Прошу помогите..
Помогите написать скрипт...
пользователей около 100..
1 и 2й пунк так можно сделать:
for i in `cat file`; do mkdir $i;done
for i in `cat file`; do cp template.xml $i/;doneНа 3м надо чуток подумать.
Спасибо побежал делать *DANCE*
Спасибо побежал делать
ты сделай, а потом спасибо скажешь.
Все получилось , спасибо.
1)
#!/bin/sh
for i in `cat /home/jabberusers`; do
mkdir $i;
done---------------------------------------------------------------------
2)
#!/bin/sh
for i in `cat /home/jabberusers`; do
cp -r /users/.purple/account.xml /home/$i/
done----------------------------------------------------------------------
Осталось подставить имена в файлы .
И придумать как бы еще скопировать все это по юзерским профилям ,
И тогда вопрос с Джабером закрыт.. ;)
Алгоритм таков :
Берешь и ко пируешь весь XML файл в строку, кроме <username и <password>
. Просто найди это как подстроку и убери, а потом скопируй . Потом заведи еще 2 строки в 1 будет тег и пароль, а в другой тег и имя . И просто встать в нужное место в строке где файл
1) Создать именную папку.
2) Скопировать шаблонный конфиг template.xml в эту папку
3) И поместит его имя в строчки вместо иксов..
<username> xxxxx<username>
<password>xxxxx<password>
while read USER; do
mkdir "$USER"
cp template.xml > "$USER/"
sed -i "s/xxxxx/$USER" "$USER/template.xml"
done <filename
Хм..
Что то у меня не все получается.. *DONT_KNOW*
На данный момент есть папка USERS
В ней есть именные папки юзеров в которых лежит профиль джаббера .purple
В сотором есть файлик accounts.xml
в нем между тегов дефолтный пароль и логин
<username> xxxxx<username>
<password>xxxxx<password>
я хотелбы чтоб вместо паролья и логина был имя пользователя
/home/vasya/.purple
<username> vasya<username>
<password>vasya<password>
еще есть файл со списком пользвателей в столбик по алфавиту
при помощи него я папки создал
Алгоритм таков :
Берешь и ко пируешь весь XML файл в строку, кроме <username и <password>
. Просто найди это как подстроку и убери, а потом скопируй . Потом заведи еще 2 строки в 1 будет тег и пароль, а в другой тег и имя . И просто встать в нужное место в строке где файл
Не понятно как это сделать в цикле для 100 пользователей...
borisgorbunov, вы мой скрипт запускали? Что пишет?
Не понятно как это сделать в цикле для 100 пользователей...
да хоть для Over9000
sed -i "s/xxxxx/$USER" "имя файла, в котором менять"
в переменной $USER должно быть записано нужное имя.
Щас еще раз попробую ,простите.. :[
чуть ошибся
запускать в каталоге с файлом template.xml
while read USER; do
mkdir "$USER"
cp template.xml "$USER/"
sed -i "s/xxxxx/$USER" "$USER/template.xml"
done <filename
в переменной $USER должно быть записано нужное имя???
(для каждого юзера должно быть свое имя и пароль в виде одноименной папки пользователя.)
как я должен обьявлять переменную в скрипте ???
как файл users.txt ??
Мне кажется что смысл немного потеряню
вот что у меня щас есть :
1) папка USERS
2) В USERS есть именные папки юзеров в которых лежит профиль джаббера .purple
3) В каждом .purple есть файлик accounts.xml
4) в нем между тегов дефолтный пароль и логин
<username> xxxxx<username>
<password>xxxxx<password>
я хотелбы чтоб вместо паролья и логина был имя пользователя
<username> vasya<username>
<password>vasya<password>
еще есть файл со списком пользвателей в столбик по алфавиту
при помощи него я папки создал
это всё одной командой можно сделать
вот структура:
[console]drb@ksu:/tmp/users$ find
.
./accounts.xml
./ccc
./ccc/.purple
./ccc/.purple/accounts.xml
./bb
./bb/.purple
./bb/.purple/accounts.xml
./a
./a/.purple
./a/.purple/accounts.xml
[/console]
вот команда:
[console]drb@ksu:/tmp/users$ find -mindepth 1 -maxdepth 1 -type d -exec sed -i*~ 's~xxxxx~{}~;T;s~\./~~' {}/.purple/accounts.xml \;
[/console]
это всё одной командой можно сделать
вот структура:
[console]drb@ksu:/tmp/users$ find
.
./accounts.xml
./ccc
./ccc/.purple
./ccc/.purple/accounts.xml
./bb
./bb/.purple
./bb/.purple/accounts.xml
./a
./a/.purple
./a/.purple/accounts.xml
[/console]
вот команда:
[console]drb@ksu:/tmp/users$ find -mindepth 1 -maxdepth 1 -type d -exec sed -i*~ 's~xxxxx~{}~;T;s~\./~~' {}/.purple/accounts.xml \;
[/console]
Спасибо тебе огромное !!
*YAHOO*
все получилось
Тему модератор зкрывает?? :[
Тему модератор зкрывает?? ah
Да.
Но обычно здесь решённые темы не закрываются.