|
From: | Michael Costa |
Subject: | Re: [shell-script] Extrair comandos a partir de um arquivo |
Date: | Sat, 18 Mar 2017 23:39:01 -0300 |
Robson AlexandreMais ou menos desta forma:3- Adicionar os usuários em seus respectivos grupos com seus respectivos parâmetros2- Separar os grupos para serem criados primeiramente1- Parsear seu arquivo de entradaMichaelacho que vc deveria montar seu algoritmo da seguinte forma
#!/bin/bash
grupos=( )
usuarios=( )
while IFS='_' read user uid gid groups1 groups2 home shell resto; do
groups1=${groups1#groups=}
groups2=${groups2#groups=}
grupos+=( ${gid#gid=} ${groups1//,/ } ${groups2//,/ } )groups=$(grep -Eo "[a-zA-Z]+" <<< "$groups1 $groups2")usuarios+=( "$user:$gid:$uid:$groups:$#EOFshell" )
done < arquivo_de_entrada
grupos=( $(sort -nu <(printf "%s\n" ${grupos[@]})) )
for grupo in "${grupos[@]}"; do
grupo=( $(sed -r 's/(.*)\((.*)\)/\1 \2/' <<< "$grupo") )
echo groupadd -g ${grupo[0]} ${grupo[1]}
groupadd -g ${grupo[0]} ${grupo[1]}
done
#useradd -g sapsys -u 32123 -G oper,sapinst -m -s /usr/bin/ksh
for usuario in ${usuarios[@]}; do
params=( ${usuario//:/ } )
echo useradd -g ${params[1]} -u ${params[2]} -G ${params[3]} -m -s ${params[4]} ${params[0]}
doneNotei que os campos groups se repetem a cada linha. Isso acontece em todas as linhas?Sobre o que vc falou sobre os campos de home estarem em posições diferentes, qual seria o padrão destas posições?AtenciosamenteEm sex, 17 de mar de 2017 às 12:07, Michael Costa address@hidden [shell-script] <address@hidden.br > escreveu:Agradeço!Entenderam ?useradd -g sapsys -u 32123 -G oper,sapinst -m -s /usr/bin/kshGrupo sapinst já existe no sistema com ID 208groupadd -g 206 opergroupadd -g 204 sapsysgroupadd -g 931 grpmstrA saida esperada, seria algo do tipo:Preciso validar se o grupo ou o usuário já existem no servidor.Os grupos se repetem, preciso de uma forma de validar se o comando do grupo já foi processado e não repetir (pensei em jogar todos os comandos para um arquivo e depois dar um uniq nele)O campo do ((HOME) é variável, as vezes está na sexta posição e em outras vezes varia.Problemas que estou enfrentando:O que estou tentando fazer, é usar este arquivo como origem e gerar os comandos de criação de usuário e grupo baseado nele.Pessoal, bom dia!Tenho um arquivo com o seguinte conteudo:
maestro_932_gid=931(grpmstr)_groups=1(staff)_groups=1( staff)_/maestro_/bin/bash
sapadm_32123_gid=204(sapsys)_groups=206(oper),208(sapinst)_ groups=206(oper),208(sapinst)_ /home/sapadm_/usr/bin/ksh
oracle_31201_gid=205(dba)_groups=206(oper),208(sapinst)_ groups=206(oper),208(sapinst)_ /oracle/SID_/bin/false
usuario_206_gid=204(sapsys)_groups=208(sapinst)_groups= 208(sapinst)_/home/usuario_/ bin/bash
groupadd -g 1 staff
useradd -g grpmstr -u 932 -G staff -m -s /bin/bash maestrogroupadd -g 205 dbaGrupo oper já existe no ambiente com ID 206Usuario oracle já existe no ambiente. (saida do comando id oracle)E por ai vai.--AtenciosamenteRobson Alexandre
[Prev in Thread] Current Thread [Next in Thread]
- Extrair comandos a partir de um arquivo, Michael Costa, 2017/03/17
- Re: [shell-script] Extrair comandos a partir de um arquivo, Robson Alexandre, 2017/03/17
- Re: [shell-script] Extrair comandos a partir de um arquivo, Michael Costa <=
- Re: [shell-script] Extrair comandos a partir de um arquivo, Julio C. Neves, 2017/03/17
- Re: [shell-script] Extrair comandos a partir de um arquivo, Michael Costa, 2017/03/18
- Re: [shell-script] Extrair comandos a partir de um arquivo, itamarnet, 2017/03/20
- Prev by Date: Re: [shell-script] Extrair comandos a partir de um arquivo
- Next by Date: Re: [shell-script] Extrair comandos a partir de um arquivo
- Previous by thread: Re: [shell-script] Extrair comandos a partir de um arquivo
- Next by thread: Re: [shell-script] Extrair comandos a partir de um arquivo
- Index(es):