Questão de Sistemas Operacionais — Scripts em Unix e Linux — FGV 2024
Sistemas Operacionais›Scripts 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/fnz−data-usr.tar.bz2
$origem
}
userok() {
if [ "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 é
Aapagar arquivos inúteis.
Brealizar o backup do servidor.
Catualizar do sistema operacional do computador.
DInstalar um sistema de segurança baseado no kubernete.
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.
1Verifica se é root
2Destino existe?
3Cria /final se preciso
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.