Mostrando postagens com marcador shell script. Mostrar todas as postagens
Mostrando postagens com marcador shell script. Mostrar todas as postagens

terça-feira, 16 de setembro de 2014

Shell script: Estruturas de repetição


Estruturas de repetição: Utilizadas quando se deseja realizar uma  atividade de forma iterativa
» BASH script possui 3 estruturas de repetição:

  • for
  • while
  • until

O laço for
Interage sobre um lista de valores

Exemplo (exercicioFor1.sh)::
#!/bin/bash
for i in 1 2 3 4 5; do
   echo “Valor do i: $i “
done

Exemplo (exercicioFor2.sh):
#!/bin/bash
for i in $(seq 1 2 20); do
   echo “Valor do i: $i “
done

Exemplo (exercicioFor4.sh):
#!/bin/bash
for (( c=1; c<=5; c++ )); do
    echo “Valor do c: $c “
done

Exemplo (exercicioFor3.sh):
#!/bin/bash
for i in {1..5}; do
   echo “Valor do i: $i “
done

O laço while
Permite executar uma lista comandos iterativamente, desde que uma pré­condição seja verdadeira

Exemplo (exercicioWhile.sh):
#!/bin/bash
# Este script abre 3 terminais.
i=”0″
while [ $i ­lt 3 ]; do
   xterm &
i=$[$i+1]
done

Exemplo (exercicioWhile2.sh):
#!/bin/bash
# Copia os arquivos de um diretório para outro, de hora em hora
DIRFONTE=/home/aluno/adsis/aulas77­78
DIRDESTINO=/tmp
while true; do
    DATE=`date +%Y%m%d`
HOUR=`date +%H`
mkdir $DIRDESTINO/”$DATE”
while [ $HOUR ­ne "00" ]; do
        DESTDIR=$DIRDESTINO/”$DATE”/”$HOUR”
mkdir “$DESTDIR”
mv $DIRFONTE/*.dat “$DESTDIR”/
sleep 3600
HOUR=`date +%H`
    done
done

O laço until
Semelhante ao while, contudo, testa a condição no início da iteração

Exemplo(exercicioUntil1.sh)
#!/bin/bash
VAR=0
until [ $VAR ­eq 10 ]
do
    echo $VAR
VAR=$(( $VAR + 1 ))
done

Fonte: http://m.smartdicas.com

FIREWALL - COMPARTILHANDO A INTERNET COM TUDO LIBERADO

Firewall Netfilter/iptables escrito em Shell Script.

# FIREWALL -  COMPARTILHANDO A INTERNET COM TUDO LIBERADO #

#!/bin/bash
echo " Ativa roteamento de pacotes........................... [ OK ]"
echo 1 > /proc/sys/net/ipv4/ip_forward

echo " Declarando variaveis.................................. [ OK ]"
IPT="/sbin/iptables"
EXT_IF="eth0"                       # Interface Internet
INT_IF="eth1"                        # Interface Rede Local
EXT_IP="192.168.100.220"   # IP da Internet
INT_IP="10.1.1.1"                  # IP da Rede Local
INT_NET="10.1.1.0/255.255.255.0"             #  Range da Rede Local
EXT_NET="192.168.100.0/255.255.255.0"  #  Range do IP da Internet

echo " Limpando regras....................................... [ OK ]."
$IPT -F -v
$IPT -F -t nat -v
$IPT -F -t mangle -v
$IPT -X -v
$IPT -X -t nat -v
$IPT -X -t mangle -v
$IPT -Z -v
$IPT -Z -t nat -v
$IPT -Z -t mangle -v


echo " Definindo Regras Padrao............................... [ OK ]"
$IPT -P INPUT ACCEPT -v
$IPT -P FORWARD ACCEPT -v
$IPT -P OUTPUT ACCEPT -v

echo " Libera tudo........................................... [ OK ]"
$IPT -A INPUT -i $INT_IF -j ACCEPT -v
$IPT -A FORWARD -i $INT_IF -j ACCEPT -v

$IPT -A INPUT -i $EXT_IF -j ACCEPT -v
$IPT -A FORWARD -i $EXT_IF -j ACCEPT -v

echo " Compartilha a internet com a Rede Interna............. [ OK ] "
$IPT -t nat -A POSTROUTING -o $EXT_IF -s $INT_NET -j SNAT --to-source $EXT_IP -v
echo " Pronto "

segunda-feira, 25 de agosto de 2014

Adicionando comando ou scripts na inicialização


Adicionando arquivos ou scripts na inicialização

Método 1
O arquivo rc.local, geralmente localizado no /etc/rc.d/rc.local. É neste arquivo que iremos colocar o caminho do nosso programa a ser executado na inicialização. No prompt, digite:

# vim /etc/rc.local

No final do arquivo rc.local, coloque o caminho completo do executável ou script do programa que deseja rodar ou um comando. Exemplo:

/etc/rc.d/rc.firewall
/etc/init.d/teste.sh
ifconfig

Salve e feche.
------------------

Método 2
(Ubuntu/Debian)
Basta você criar seu script dentro da pasta /etc/init.d. Exemplo:

# vim /etc/init.d/meuscript 

#!/bin/bash 
echo "Olá mundo"

Agora é só dar a permissão para execução:

# chmod +x /etc/init.d/meuscript 

Agora é só colocar para inicializar junto com o sistema:

# update-rc.d meuscript defaults 

terça-feira, 15 de julho de 2014

Script em Shell - compacta.sh

Este script tem a função de listar todos os diretórios do / gravar em um arquivo de nome "lista_dir.txt" no diretório corrente, criar uma pasta no / com nome de "compactados" onde será arquivado tudo, em seguida ler o arquivo "lista_dir.txt" linha por linha compactando e salvando e por último apagando o arquivo "lista_dir.txt"


#!/bin/bash

# Lista todos os ditetorios e grava 1 em cada linha do arquivo lista_dir.txt.
ls -d -1 /* > lista_dir.txt

# Cria a pasta compactados
mkdir /compactados

# Executa o comando enquanto existir linha.
while read LINHA
do

# Compacta o diretorio
tar zcf /compactados/$LINHA-6-14.tar.gz /$LINHA

# Exibe o diretório que foi compactado.
echo $LINHA
echo "-----"

# Lê o arquivo lista_dir.txt
done < lista_dir.txt

# Remove o arquivo lista_dir.txt
rm lista_dir.txt