como criar esses scripts em bash 4.0

Iniciado por Skarnio, 20 de Novembro de 2011, 12:23

tópico anterior - próximo tópico

Skarnio

Olá pessoal, sou novo por aqui e meu professor me passou esses exercícios, nos quais eu estou me dando muito mal. Será que alguém poderia resolver isso para mim?  ficaria imensamente agradecido. O grande problema é que começamos a estudar esse semestre, aí vem um cara e pede isso, estou totalmente perdido.

1. Crie um script em bash 4.0, que identifique o processo que está consumindo mais recursos de CPU na máquina.
DICAS: utilize o comando: (ps aux | cut -c10-19) para obter o pid e o consumo de CPU de cada processo. Utilize laços de repetição e vetores para construir seu script

2. Crie um script em bash 4.0, que verifique as máquinas online em sua rede.
DICAS: Utilize os comandos:
Subrede: (ifconfig | grep 'Bcast:' | cut -d: -f2 | cut -d. -f1,2,3)
Testando o Ping: (ping -w 1 -c 1 $subrede.$host | tr -d "\-\-\-\n" | grep '1 received' | cut -d ' ' -f 2) . A variável host deverá fazer parte de um for que varia de 0 a 255. O comando tr tem o objetivo de remover os caracteres – e <RETURN> deixando em uma única linha para o grep.
Armazenando no vetor: (online[`expr ${#online
  • } + 1`]=$host;), crie uma vetor online, para armazenar os hosts ativos.

    3. Crie um script que monitore um certo diretório informado por parâmetro. Quando algum arquivo for salvo, um backup desse arquivo deverá ser criado no mesmo diretório. Sempre que os arquivos forem alterados, seu script deverá salvar novo backup.
    DICAS: Quantidade de arquivos no diretório: ( ls $diretorio | wc -l )
    Comparando arquivos: ( diff $arq ${arq}.bak ) – $? será 0 se não existirem diferenças.
    Copiando arquivos: ( cp $arq ${arq}.bak )

    4. Crie um script que envie um email para os usuários do sistema, com uma mensagem digitada ou em um arquivo. Caso o script receba a opção -f a mensagem será lida de um arquivo informado, caso contrário a mensagem deverá ser solicitado no console.
    DICA:
    Enviando um mail simples: ( mail $usuario < $arquivo )