Pular para o conteúdo principal

Questão de Sistemas Operacionais — Scripts em Unix e Linux — FGV 2024

Sistemas OperacionaisScripts em Unix e Linux
Código
fg165633
Banca
FGV
Órgão
ALEP
Ano
2024
Cargo
Ana Leg ( )

Um administrador de um servidor Linux escreveu o seguinte arquivo de script em bash

 

#!/usr/bin/env bash

ROOT_UID=0

data=date +%d-%m-%y-%H:%M

origem=/etc

destino=/final

fazer() {

tar -cjvf destino/fnzdestino/fnz-data-usr.tar.bz2

$origem

}

userok() {

if [ "UID"ne"UID" -ne "ROOT_UID" ]

then

echo ""

echo "ERRO"

echo ""

exit $E_NOTROOT

fi

}

userok

if [ -d $destino ]

then

fazer

else

if [ -f $destino ]

then

echo "ERRO"

sleep 2

else

mkdir $destino

fazer

fi

fi

 

Esse script representa uma ação de administração do computador que é

  1. Aapagar arquivos inúteis.
  2. Brealizar o backup do servidor.
  3. Catualizar do sistema operacional do computador.
  4. DInstalar um sistema de segurança baseado no kubernete.
  5. Everificar o quanto do disco principal está útil para inserção de novos arquivos.
Revelar gabarito e comentário

GabaritoB — realizar o backup do servidor.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Scripts em Unix e Linux: backup com tar

Gabarito: letra B. O script analisado realiza o backup do servidor: ele verifica se o usuário é root, cria o diretório de destino se necessário e utiliza o comando tar com as opções -cjvf para compactar e arquivar o conteúdo de /etc em um arquivo .tar.bz2 dentro de /final. A ação central é a criação de uma cópia compactada de um diretório do sistema, o que caracteriza um backup.

O script é um exemplo clássico de automação de tarefas administrativas em Linux. Vamos entender cada parte:

  • #!/usr/bin/env bash: indica que o script deve ser interpretado pelo bash.

  • ROOT_UID=0: define uma variável com o UID do usuário root (0).

  • data=\date +%d-%m-%y-%H:%M``: captura a data e hora atuais no formato dia-mês-ano-hora-minuto, para nomear o arquivo de backup de forma única.

  • origem=/etc e destino=/final: definem o diretório de origem (o que será copiado) e o de destino (onde o backup será salvo).

  • fazer(): a função que executa o comando tar -cjvf $destino/fnz-$data-usr.tar.bz2 $origem. As opções do tar são:

    • -c: cria um novo arquivo.

    • -j: usa compressão bzip2.

    • -v: modo verboso (mostra os arquivos processados).

    • -f: especifica o nome do arquivo de saída.

  • userok(): função que verifica se o usuário que executa o script é o root (UID igual a ROOT_UID). Se não for, exibe "ERRO" e encerra o script.

  • Fluxo principal: chama userok; se o diretório /final existir, executa fazer; se não existir, mas for um arquivo, exibe erro; se não existir, cria o diretório com mkdir e executa fazer.

O comando tar é a ferramenta padrão para criar arquivos de backup (arquivos compactados) em sistemas Unix-like. A combinação de -cjvf com um diretório de origem e um arquivo de destino é a essência de um backup. As outras alternativas descrevem ações completamente diferentes, que não têm relação com os comandos e a lógica do script.

A pegadinha desta questão é que o candidato pode se perder nos detalhes do script (como a verificação de root ou a criação do diretório) e não perceber que a ação principal, o coração do script, é o comando tar criando um arquivo compactado. A banca testa se o candidato consegue identificar a finalidade central de um script, mesmo com várias estruturas de controle ao redor.

  1. 1Verifica se é root
  2. 2Destino existe?
  3. 3Cria /final se preciso
  4. 4tar -cjvf (backup)
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Apagar arquivos inúteis envolveria comandos como rm ou find -delete. O script não remove nenhum arquivo; ele apenas cria um novo arquivo compactado. A ação é de cópia/arquivamento, não de exclusão.

Alternativa B — ✅ Correta ⟵ GABARITO

O script cria um arquivo .tar.bz2 contendo o conteúdo de /etc e o salva em /final. Isso é exatamente um backup: uma cópia de segurança dos arquivos de configuração do sistema, compactada e armazenada em outro local. A verificação de root e a criação do diretório de destino são etapas preparatórias para garantir que o backup seja feito corretamente.

Alternativa C — ❌ Incorreta

Atualizar o sistema operacional envolveria comandos como apt update && apt upgrade (Debian/Ubuntu) ou yum update (Red Hat). O script não executa nenhum comando de gerenciamento de pacotes ou atualização do sistema. Ele apenas arquiva um diretório.

Alternativa D — ❌ Incorreta

Instalar um sistema de segurança baseado em Kubernetes envolveria ferramentas como kubeadm, kubectl ou helm. O script não tem nenhuma relação com Kubernetes ou orquestração de contêineres. É uma alternativa completamente fora do contexto.

Alternativa E — ❌ Incorreta

Verificar o espaço em disco utilizaria comandos como df -h ou du -sh. O script não verifica o uso do disco; ele apenas cria um arquivo compactado. A ação é de escrita de um backup, não de análise de espaço.

Gabarito: letra B

Link permanente: /questoes/fg165633