AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-565329

Ambre's questions

Martin Hope
Ambre
Asked: 2025-03-28 21:47:36 +0800 CST

O shell não está redirecionando a saída do tar para o arquivo

  • 10

Imagino que seja um problema simples, mas não tenho ninguém para verificar meu trabalho.

Aqui está meu script bash

#!/bin/bash

# establish date format and dump name
DATE=$(date +"%Y%m%d-%H%M")
DUMPFILE=$DATE.dump

# path to log dir and name of output log file 
LOGDIR=/opt/mongodb/backups/logs
DBLOG=$DATE-dump.log

# backup the database and output to a dump file, redirect output to a log
docker exec -i mongodb sh -c "mongodump --archive" > \
    $DUMPFILE 2> \ 
    $LOGDIR/$DBLOG

# archive the dump file and the file uploads
ARCHIVENAME=$DATE.tgz
ARCHIVELOG=$DATE-archive.log

tar -czvf $ARCHIVENAME /opt/mongodb/$DUMPFILE /opt/mongodb/files &> \
    $LOGDIR/$ARCHIVELOG

Onde estou preso, o script emite corretamente o log de despejo. No entanto, quando chega ao fim, recebo

./backup.sh: line 20: /opt/mongodb/backups/logs/20250328-0942-archive.log: No such file or directory

Tentei usar o caminho absoluto em vez do da var:

tar -czvf $ARCHIVENAME /opt/mongodb/$DUMPFILE /opt/mongodb/files &> \
    /opt/mongodb/backups/logs/$ARCHIVENAME

Mas recebo o mesmo erro. Estou supondo que isso seja meu entendimento ruim de redirecionamentos, tar ou um erro de sintaxe. Qualquer ajuda seria apreciada.

EDIT: Um arquivo chamado "' '" é criado toda vez que executo o script. Se executado

cat ' '

Vejo que esse arquivo é o log, então ele redireciona a saída para um arquivo, mas não da maneira desejada.

bash
  • 2 respostas
  • 576 Views
Martin Hope
Ambre
Asked: 2025-03-14 01:32:57 +0800 CST

Não é possível definir a senha de outro usuário, mesmo como root

  • 7

Estou tendo um problema incomum. Criei o usuário e, pensei, configurei sua senha. Para contexto adicional, isso é em um ambiente de produção e estamos usando RHEL 8.10

[root@computer ~] useradd user -G wheel
[root@computer ~] passwd user
New password:
BAD PASSWORD: blah blah
Retype new password:
passwd: all authentication tokens updated successfully

Todos os usuários do Wheel têm a capacidade de fazer SSH neste servidor. Quando tentei fazer SSH no servidor usando as novas credenciais, recebi o erro "senha incorreta". Ok, então tentei fazer login na máquina diretamente usando o tty, mais uma vez, senha incorreta. Efetuei login novamente como root e tentei redefinir a senha, dessa vez verificando se estava inserindo a senha correta.

Mais uma vez, meu login foi negado devido a uma senha incorreta. Então, tentei fazer login com minha própria conta de usuário e fui negado devido à senha incorreta. Isso é muito incomum, pois consigo fazer SSH no servidor usando meu usuário pessoal com as mesmas credenciais que foram negadas.

Estou preso entre isso ser um simples erro do usuário ou se há opções de configuração do Linux (específicas para RHEL 8) que impediriam que novas senhas fossem escritas. Pensei que talvez /estivesse montado como somente leitura, mas consigo tocar em novos arquivos para /etc. Além disso, mount -l | grep "ro"não lista a partição raiz como somente leitura.

Qualquer ideia para verificar seria muito apreciada.

EDIT: Eu também acabei de perceber que, se fosse um problema somente leitura, o novo usuário que eu criei não teria sido registrado. Eu verifiquei que o usuário foi criado e adicionado ao grupo correto via cat /etc/passwdecat /etc/group

rhel
  • 1 respostas
  • 47 Views
Martin Hope
Ambre
Asked: 2025-01-21 23:46:12 +0800 CST

Ajuda para descobrir como lidar com erros no script "mongodump"

  • 6

Eu tenho um script bash simples que deve criar um arquivo de despejo de um banco de dados

docker exec -i container sh -c "mongodump --archive" > \
    ~/dumps/db-$(date + "%d%m%Y").dump 2> \
    ~/logs/dumps/db-$(date + "%d%m%Y").log \

Pediram-me para garantir que o script lidaria com quaisquer erros, então tentei adicionar o seguinte ao script.

docker exec -i container sh -c "mongodump --archive" > \
    ~/dumps/db-$(date + "%d%m%Y").dump 2> \
    ~/logs/dumps/db-$(date + "%d%m%Y").log \

exit_status=$?
if [ exit_status -ne 0 ]; then
    echo "An error occured while running mongodump. Exit Status: $exit_status"
fi

O acima foi minha tentativa. Se o status de saída for qualquer coisa menos 0, envie uma mensagem de eco com o código de saída real. O script cria com sucesso um arquivo de despejo, no entanto, recebo o seguinte erro:

[: exit_status: integer expression expected

Minha suposição é que, por causa do meu redirecionamento de log, o comando em si não relata um status de saída na conclusão. Mas não tenho tanta certeza. Ainda estou aprendendo as manhas do script Bash, então qualquer conselho é bem-vindo.

bash
  • 1 respostas
  • 19 Views
Martin Hope
Ambre
Asked: 2024-11-18 22:40:11 +0800 CST

Analisando dados no Bash: adicionando vírgulas após cada string

  • 5

Estou tentando gerar um arquivo que eu possa anexar ao visudo. A tarefa em si não é muito importante, pois estou apenas tentando me aprofundar um pouco mais no Bash. Meu script atual se parece com isso:

#!/bin/bash

path=/bin/ansible*
declare -a commands=()

for command in $path; do
        commands+=($command)
done

echo ${commands[@]} > ~/commands.txt

que produz:

/bin/ansible /bin/ansible-config /bin/ansible-connection /bin/ansible-console...

Gostaria que a saída do script fosse parecida com:

/bin/ansible, /bin/ansible-config, /bin/ansible-connection, /bin/ansible-console...

Acho que estou complicando demais essa tarefa. Já vi pessoas usando awk e sed, mas pelo que vi awk parece funcionar melhor com colunas de dados e sed é muito confuso. Qualquer conselho seria apreciado.

bash
  • 3 respostas
  • 41 Views
Martin Hope
Ambre
Asked: 2023-04-29 00:41:29 +0800 CST

Como escrevo um script que executa "du -sh" para cada arquivo em um diretório?

  • 5

Minha organização tem um compartilhamento de rede dedicado aos arquivos do usuário. Cada usuário tem seu próprio diretório. Estou tentando descobrir quem está usando mais espaço no compartilhamento. Meu código atual se parece com isso

#!/bin/bash

#Author= x
#Date= 04/28/23
#Desc= x

# Defining the directory
directory="/path/to/directory"

# Creating array to hold the file names
files=()

# Loop through each file in the directory
for file in "$directory"/*; do
  # Add the file name to the array
  files+=("$file")
done

# Use du to get the size of each file and sort the results by size
du -sh "${files[@]}" | sort -h > output.txt

Ao executar o script, recebo "du: não é possível acessar '$file': nenhum arquivo ou diretório". Sou bastante novo em scripts e percebo que esse problema é como estou definindo minhas variáveis, mas não tenho certeza do que mudar.

linux
  • 1 respostas
  • 22 Views
Martin Hope
Ambre
Asked: 2023-04-06 00:31:17 +0800 CST

Como a partição EFI deve ser tratada em uma invasão de software?

  • 5

Estou tentando instalar o Arch em um computador, tenho dois dispositivos de armazenamento. Eu particionei as unidades da mesma forma que faria se estivesse instalando em um dispositivo de armazenamento no efi dekstop.

sda
  sda1 (boot partition)
  sda2 (swap)
  sda3 (root)
sdb
  sdb1
  sdb2
  sdb3

Eu então criei um array para cada partição

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1

Deixando-me com 3 matrizes.

md0 (boot)
md1 (swap)
md2 (root)

Em seguida, formatei cada array como faria se fossem partes únicas, ou seja: mkfs.ext4 /dev/md2, mkfs.fat /dev/md0, mkswap /dev/md1. Em seguida, montei os arrays normalmente e fiz a instalação padrão.

No entanto, ao tentar instalar o grub no ponto de montagem de /dev/md0, recebi um erro dizendo

efibootmgr failed to register the boot entry: Operation not permitted

Sei que isso é uma configuração incorreta da partição de inicialização, mas não tenho certeza de como o dispositivo de inicialização deve ser tratado em uma instalação EFI.

arch-linux
  • 1 respostas
  • 29 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve