0
respostas

[Projeto] Hora da prática

#!/bin/bash

# Função: Atualizar pacotes do sistema
atualizar_pacotes() {
    echo "Atualizando a lista de pacotes..."
    sudo apt update && sudo apt upgrade -y
    [ $? -eq 0 ] && echo "Atualização concluída com sucesso!" || echo "Falha na atualização."
}

# Função: Renomear arquivos
renomear_arquivos() {
    read -p "Digite o caminho do diretório: " dir
    [ ! -d "$dir" ] && { echo "Diretório não encontrado."; return; }

    read -p "Deseja adicionar prefixo ou sufixo? (prefixo/sufixo): " tipo
    read -p "Digite o texto a adicionar: " texto

    for arquivo in "$dir"/*; do
        [ ! -f "$arquivo" ] && continue
        base=$(basename "$arquivo")
        dirpath=$(dirname "$arquivo")
        case $tipo in
            prefixo) mv "$arquivo" "$dirpath/$texto$base" ;;
            sufixo)
                ext="${base##*.}"
                nome="${base%.*}"
                mv "$arquivo" "$dirpath/${nome}${texto}.${ext}"
                ;;
            *) echo "Opção inválida"; return ;;
        esac
    done
    echo "Renomeação concluída!"
}

# Função: Criar usuário
criar_usuario() {
    read -p "Digite o nome do usuário a criar: " usuario
    read -p "Digite o nome completo (opcional): " fullname

    sudo useradd -m -c "$fullname" "$usuario"
    if [ $? -eq 0 ]; then
        echo "Usuário $usuario criado com sucesso!"
        sudo passwd "$usuario"
    else
        echo "Falha na criação do usuário."
    fi
}

# Função: Monitorar espaço em disco
monitorar_disco() {
    echo "Verificando uso de disco..."
    df -h | tee disk_report.txt
    echo "Relatório salvo em disk_report.txt"
}

# Função: Backup com compressão gzip
backup_diretorio() {
    read -p "Digite o diretório a ser feito backup: " dir_origem
    [ ! -d "$dir_origem" ] && { echo "Diretório de origem não encontrado."; return; }

    read -p "Digite o diretório de destino do backup: " dir_destino
    [ ! -d "$dir_destino" ] && mkdir -p "$dir_destino"

    backup_file="$dir_destino/backup_$(date +%Y%m%d_%H%M%S).tar.gz"
    tar -czf "$backup_file" -C "$dir_origem" .
    [ $? -eq 0 ] && echo "Backup concluído com sucesso em $backup_file" || echo "Falha no backup."
}

# Menu interativo
while true; do
    echo ""
    echo "Selecione a operação:"
    echo "1) Atualizar pacotes"
    echo "2) Renomear arquivos"
    echo "3) Criar usuário"
    echo "4) Monitorar espaço em disco"
    echo "5) Backup de diretório"
    echo "0) Sair"
    read -p "Escolha uma opção: " opcao

    case $opcao in
        1) atualizar_pacotes ;;
        2) renomear_arquivos ;;
        3) criar_usuario ;;
        4) monitorar_disco ;;
        5) backup_diretorio ;;
        0) echo "Saindo..."; exit ;;
        *) echo "Opção inválida." ;;
    esac
done