
Tenho o script bash abaixo, toda vez que quero criar um usuário, preciso copiar esse script para o servidor e executá-lo.
Existe alguma coisa que possamos fazer para que este script busque os IPs de um arquivo hosts.txt (executando script em vários servidores) um por um e crie um usuário no servidor.
1. peça a senha uma vez e use-a no script para o restante do script sempre que necessário. 2.faça login como usuário normal. 3. torne-se um usuário root e execute o script
#!/bin/bash
#Script to Add User
read -p 'Please Enter The Username To Add: ' name
echo "$name" > /tmp/userlist.txt
clear
echo -e "Hallo $name\nYour Name Is Added To The List."
userfile=/tmp/userlist.txt
username=$(cat /tmp/userlist.txt | tr 'A-Z' 'a-z')
for user in $username
do
useradd $user -N -s /bin/bash
usermod -aG sudo $user
passwd $user
done
echo "=================================="
echo "User $name Have Been Created."
echo "=================================="
tail /etc/passwd | cut -d: -f1
Responder1
Se você deseja copiar o script e executá-lo a partir de um ponto centralizado, crie um script de provisionamento geral encarregado de copiar e executar
Crie uma lista de array, neste caso usei um arquivo chamado hostList.active
Defina o único argumento como o script que você está tentando copiar e executar no servidor remoto. (Neste caso, ele será executado no diretório inicial das máquinas remotas)
#! /bin/bash while read box; do ping -c 1 -w 1 -q $box > /dev/null if (test $? = 0); then echo "***************************************************************" echo $box scp $1 $box:~/. ssh -n -o stricthostkeychecking=no -X $box "~/$1" else echo $box is not responding to ping echo $box >> hostList.notdone fi done < hostList.active
Coloquei 2 servidores de teste em meu arquivo de lista de array (hostList.active) e conectei a ambos, copiei o script e executei.
./copyandrun.sh bogus.sh
***************************************************************
tsweb
bogus.sh 100% 36 0.0KB/s 00:00
Running a Test
***************************************************************
tsdb
bogus.sh 100% 36 0.0KB/s 00:00
Running a Test
Certifique-se de que o script que você está copiando tenha as permissões adequadas para poder ser executado por qualquer usuário que você esteja copiando.