Есть фаил со списком пользователей. Вида:
-------------------
user1
user2
user3
-------------------
Нужно для каждого юзера :

1) Создать именную папку.
2) Скопировать шаблонный конфиг template.xml в эту папку
3) И поместит его имя в строчки вместо иксов..
<username> xxxxx<username>
<password>xxxxx<password>

Прошу помогите..

пользователей около 100..

3 (11.04.2014 17:35:10 отредактировано i2ks)

1 и 2й пунк так можно сделать:

for i in `cat file`; do mkdir $i;done 
for i in `cat file`; do cp template.xml $i/;done

На 3м надо чуток подумать.

It is good day to die ...
MS Windows 10
Заметки о главном...

Спасибо побежал делать  bo

5

borisgorbunov пишет:

Спасибо побежал делать 

ты сделай, а потом спасибо скажешь.

It is good day to die ...
MS Windows 10
Заметки о главном...

Все получилось , спасибо.

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

----------------------------------------------------------------------

Осталось подставить имена в файлы .
И придумать как  бы еще скопировать все это по юзерским профилям ,
И тогда вопрос с Джабером закрыт..  bx

7

Алгоритм таков :
Берешь и ко пируешь весь XML файл в строку, кроме <username и <password>
. Просто найди это как подстроку и убери, а потом скопируй . Потом заведи еще 2 строки в 1 будет тег и пароль, а в другой тег и имя . И просто встать в нужное место в строке где файл

:3

8 (14.04.2014 07:30:18 отредактировано drBatty)

borisgorbunov пишет:

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
Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

Хм..
Что то у меня не все получается..  bn

На данный момент есть  папка USERS
В ней есть именные папки юзеров в которых лежит профиль джаббера  .purple
В сотором есть файлик accounts.xml
в нем между тегов дефолтный пароль и логин
<username> xxxxx<username>
<password>xxxxx<password>
я хотелбы чтоб вместо паролья и логина был имя пользователя
/home/vasya/.purple
<username> vasya<username>
<password>vasya<password>

еще есть файл со списком пользвателей в столбик по алфавиту
при помощи него я папки создал

10

Kenny пишет:

Алгоритм таков :
Берешь и ко пируешь весь XML файл в строку, кроме <username и <password>
. Просто найди это как подстроку и убери, а потом скопируй . Потом заведи еще 2 строки в 1 будет тег и пароль, а в другой тег и имя . И просто встать в нужное место в строке где файл

Не понятно как это сделать в цикле для 100 пользователей...

11

borisgorbunov, вы мой скрипт запускали? Что пишет?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

12

borisgorbunov пишет:

Не понятно как это сделать в цикле для 100 пользователей...

да хоть для Over9000

sed  -i "s/xxxxx/$USER" "имя файла, в котором менять"

в переменной $USER должно быть записано нужное имя.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

13

Щас еще раз попробую ,простите..  ah

14

чуть ошибся

запускать в каталоге с файлом template.xml

while read USER; do
  mkdir "$USER"
  cp template.xml "$USER/"
  sed  -i "s/xxxxx/$USER" "$USER/template.xml"
done <filename
Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

15

в переменной $USER должно быть записано нужное имя???
(для каждого юзера должно быть свое имя и пароль в виде одноименной папки пользователя.)
как я должен обьявлять переменную в скрипте ???
как файл users.txt ??

16

Мне кажется что смысл немного потеряню
вот что у меня щас есть :
1)  папка USERS
2) В USERS есть именные папки юзеров в которых лежит профиль джаббера  .purple
3) В каждом   .purple есть файлик accounts.xml
4) в нем между тегов дефолтный пароль и логин
<username> xxxxx<username>
<password>xxxxx<password>
я хотелбы чтоб вместо паролья и логина был имя пользователя

<username> vasya<username>
<password>vasya<password>

еще есть файл со списком пользвателей в столбик по алфавиту
при помощи него я папки создал

17

это всё одной командой можно сделать

вот структура:

 Консоль:
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

вот команда:

 Консоль:
drb@ksu:/tmp/users$ find -mindepth 1 -maxdepth 1 -type d -exec sed -i*~ 's~xxxxx~{}~;T;s~\./~~' {}/.purple/accounts.xml \;

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

18

drBatty пишет:

это всё одной командой можно сделать

вот структура:

 Консоль:
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

вот команда:

 Консоль:
drb@ksu:/tmp/users$ find -mindepth 1 -maxdepth 1 -type d -exec sed -i*~ 's~xxxxx~{}~;T;s~\./~~' {}/.purple/accounts.xml \;



Спасибо тебе огромное !!
bp
все получилось

19

Тему модератор зкрывает??  ah

20

borisgorbunov пишет:

Тему модератор зкрывает??  ah

Да.

Но обычно здесь решённые темы не закрываются.

21

не нужно закрывать. Решение не лучшее, это можно было сделать простым скриптом, а не тремя нелепыми костылями.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)