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 / unix / 问题

All perguntas(unix)

Martin Hope
LuckyJollyMoments
Asked: 2025-04-13 20:00:00 +0800 CST

Por que `sudo -E` não preserva `PERL5LIB`?

  • 16

Estou enfrentando um comportamento estranho relacionado à preservação de variáveis ​​de ambiente com sudo no macOS (15.2): sudo -Enão preserva a variável de ambiente PERL5LIB.

Etapas de reprodução

  1. Defina uma variável de ambiente no shell: export PERL5LIB=foo . O comando env | grep PERL5LIB retorna como esperado: PERL5LIB=foo .

  2. No entanto, o comando sudo -E env | grep PERL5LIB , não retorna nada. Em contraste, isto funciona: sudo --preserve-env=PERL5LIB env | grep PERL5LIB . Ele preserva PERL5LIB. com sucesso.

Isso é confuso porque eu esperava sudo -Epreservar todas as variáveis ​​de ambiente do shell de chamada, incluindo PERL5LIB. Mas, claramente, não está funcionando dessa forma para esta variável específica.

Pergunta

  • Por que não é PERL5LIBpreservado sudo -Eno macOS?
  • Esse comportamento é específico de PERL5LIBou afeta outras variáveis ​​também?
  • Qual é a maneira recomendada e confiável de garantir que isso PERL5LIBseja preservado ao usar o sudo?
shell
  • 1 respostas
  • 972 Views
Martin Hope
EmberNeurosis
Asked: 2025-04-13 03:11:21 +0800 CST

Usando mktemp sobre SSH

  • 5

Quero criar uma pasta temporária em uma máquina remota usando mktemp e, em seguida, mover alguns arquivos da máquina remota para esse diretório.

Eu tentei o seguinte:

ssh "$target" "mv $HOME/scripts/* $(mktemp -d -t scripts.XXXXXX)"

Mas recebo um erro da máquina remota informando que tal arquivo não foi criado. Alguma ideia?

ssh
  • 1 respostas
  • 37 Views
Martin Hope
peterh
Asked: 2025-04-11 23:40:20 +0800 CST

Como obter o tamanho realmente utilizado de um arquivo esparso?

  • 8

Gostaria de saber quanto um arquivo esparso realmente ocupa no disco.

ls, state comandos similares parecem mostrar seu tamanho virtual, ou seja, com os buracos.

Quero saber o uso real do disco do arquivo, sem os buracos.

Como posso fazer isso?

sparse-files
  • 1 respostas
  • 146 Views
Martin Hope
QF0
Asked: 2025-04-11 18:13:00 +0800 CST

bash: assumir o controle exclusivo do console/tty

  • 6

Tenho um script que implementa um menu simples usando o dialog (um ncursesaplicativo para gerar widgets TUI). Ele é executado imediatamente após a inicialização em um sistema baseado em Arch.

O script de diálogo funciona de forma independente, mas há um problema quando é executado após a inicialização. O processo de inicialização grava uma saída atrasada no console ("Iniciando serviço de despacho de script do gerenciador de rede" e possivelmente um tempo limite posterior), e isso sobrescreve o menu e bagunça os modos tty. Posso consertar o modo tty ( stty sane), mas também preciso impedir que o texto chegue ao console.

Existe alguma maneira de despejar qualquer saída do console do kernel do script?

bash
  • 2 respostas
  • 48 Views
Martin Hope
GetShifting
Asked: 2025-04-11 17:21:43 +0800 CST

Registre todas as mensagens do journald no AWS Cloudwatch

  • 6

Estou migrando nossos servidores Amazon Linux 2 para o Amazon Linux 2023. Uma das mudanças é que o AL2023 agora usa o journald para seus registros. Preciso ter todos os registros no AWS CloudWatch.

Já habilitei o agente CloudWatch normal para métricas e alguns arquivos de log. Está funcionando conforme o esperado.

Para o journald, verifiquei várias opções e decidi implementar journald-cloudwatch-logs , pois parecia o mais promissor. Configurei, mas tenho um problema:

  • O serviço inicia com sucesso, mas simplesmente não vejo nenhum registro no CloudWatch.

Esta é a configuração:

aws_region = "eu-central-1"
ec2_instance_id = "i-xxxxxxxxxx"
log_group = "LogGroup"
log_stream = "server01-systemctl"
state_file = "/var/lib/journald-cloudwatch-logs/state"
log_priority = "INFO"

Verifiquei o journalctl, mas não encontrei erros ou qualquer outra indicação de que algo esteja errado. Além disso, como o agente CloudWatch normal registra com sucesso em outro fluxo de log, sei que as permissões do IAM estão corretas.

Minhas perguntas:

  • Como posso fazer com que o journald-cloudwatch-logs realmente registre no CloudWatch?

Qualquer ajuda é muito apreciada.

Editar: Também estou aberto a outras abordagens para registrar mensagens do journald no CloudWatch

selinux
  • 2 respostas
  • 45 Views
Martin Hope
localhost
Asked: 2025-04-11 16:36:26 +0800 CST

Como obter o nome do dispositivo de loop que contém um volume lógico criptografado por LUKS

  • 10

No Ubuntu, montei um arquivo .img de disco bruto como um dispositivo de loop que contém um LVM criptografado por LUKS com uma instalação do Ubuntu nele.

É montado assim: (a saída é delsblk -o NAME,PKNAME,KNAME,FSTYPE,SIZE /dev/loop0

NAME                      PKNAME KNAME FSTYPE        SIZE
loop0                            loop0               240G
├─loop0p1                 loop0  dm-11 ext4          487M
├─loop0p2                 loop0  dm-12                 1K
└─loop0p5                 loop0  dm-13 crypto_LUKS 239.5G
  └─cloneluks             dm-13  dm-14 LVM2_member 239.5G
    ├─ubuntuclone-lv_swap dm-14  dm-15                 8G
    └─ubuntuclone-lv_root dm-14  dm-16 ext4        231.5G

Existe algum comando que eu possa usar em um script para retornar o "dispositivo de bloco" raiz (não tenho certeza se esse é o termo correto) quando eu dou o nome do LV montado?

Eu esperava que isso lsblk -no pkname /dev/ubuntuclone/lv_rootfuncionasse, mas não gera nada - usar knameme dá dm-16.

Eu quero chegar a loop0.

Também vi esta resposta que sugeria que eu poderia usar "$(basename "$(readlink -f /dev/VG/LV)")", mas não consegui descobrir como usá-la:

 dev=/dev/ubuntuclone/lv_root ; echo "$(basename "$(readlink -f $dev)")"

saídas dm-16.

Não consigo descobrir como "passar" pelo contêiner crypto_LUKS.

É isso que estou procurando:

para entrada:

/dev/ubuntuclone/lv_rootouubuntuclone-lv_root

Gostaria de obter a saída:

/dev/loop0

Obrigado.

editar: Acho que usar lsblk --json | jqpode ser exatamente o que eu quero, mas estou tendo muita dificuldade em descobrir os encantamentos corretos para jq...

lvm
  • 2 respostas
  • 346 Views
Martin Hope
Zhro
Asked: 2025-04-11 05:50:15 +0800 CST

Como evitar uma condição de corrida em que um script executa um programa que só deve ser executado uma vez por script

  • 5

Tenho um script que executa um programa que desejo executar apenas como uma instância por script. Por exemplo, tenho um script "a" e um script "b", cada um executando um programa Java. Quero que apenas uma instância do programa Java seja executada a partir do script "a" e apenas uma instância seja executada a partir do script "b". Nesse caso, não posso simplesmente testar se um executável específico está em execução, porque é a JVM. O próprio script também é encerrado após o início do aplicativo, então não posso testar para ver se ele já está em execução.

Posso gravar o PID do processo em execução em um arquivo e testar, mas estou entrando em uma condição de corrida, pois preciso esperar o programa iniciar e então registrar o PID em um arquivo. Se o script de inicialização for executado mais de uma vez muito rápido, acabo com várias instâncias do programa em execução. Há também a rara ocasião em que duas instâncias tentam gravar no arquivo PID ao mesmo tempo, criando outro problema, em que agora tenho um processo órfão do qual não tenho nenhum registro PID.

Qual é um método confiável para bloquear um programa dentro de um script de inicialização, de modo que eu execute apenas uma única instância de um script sem uma condição de corrida?

Observe que isso não se limita especificamente à execução de programas Java. Este foi apenas um exemplo.

bash
  • 3 respostas
  • 51 Views
Martin Hope
Vlastimil Burián
Asked: 2025-04-11 03:30:45 +0800 CST

Como expandir um alias Bash fornecido como argumento?

  • 5

Provavelmente abordei esse problema de forma errada. Atualizo minhas máquinas Linux com aliases bash como:

alias upg-pi='\ssh -c [email protected] -C -i $ssh_identity -o ConnectTimeout=$ssh_timeout root@$ssh_ip_rpi4 -t /root/upgrade'

O alias acima, eu escrevi explicitamente, na verdade consiste no ssh-pialias:

alias upg-pi='ssh-pi -t /root/upgrade'

Eu tentei expand_aliasese igual.


Meta

Ser capaz de executar várias janelas do gnome-terminal ao mesmo tempo, como:

function upg_all()
{
    gnome-terminal --window -- upg
    gnome-terminal --window -- upg-pi
    # ...
}

Preciso dormir agora. Vejo você de manhã. Espero que com alguma solução.

É específico do Bash no Mint 22. Tenho controle total sobre este sistema operacional. Obrigado.

bash
  • 2 respostas
  • 56 Views
Martin Hope
greenbug
Asked: 2025-04-11 01:38:00 +0800 CST

Não é possível conectar-se via SSH a um usuário com alta carga de trabalho

  • 7

Tenho um pequeno servidor que está executando a versão mais recente do Ubuntu LTS. Utilizo-o para executar um código um pouco pesado. Nas últimas vezes, notei que, se uma tarefa consome muitos recursos (mas não o máximo, perto de 70% da RAM/CPU), ele não me permite fazer login com o usuário que a iniciou. Ele trava por cerca de 15 segundos e depois expira. O problema é que ele me permite fazer login como outro usuário sem problemas. Até onde eu sei, não tenho nenhuma restrição específica de usuário para gerenciamento de recursos. Estou um pouco confuso sobre como solucionar esse problema, então qualquer informação seria muito útil.

No fim das contas, não me importo muito que isso bloqueie o login de um usuário, porque se eu precisar fazer login com esse usuário, posso simplesmente encerrar o processo que está consumindo os recursos. Estou ainda mais curioso para saber por que isso está acontecendo.

ssh
  • 1 respostas
  • 50 Views
Martin Hope
harry mckay
Asked: 2025-04-10 21:14:32 +0800 CST

como usar pv em um script que tem um loop seq for

  • 5

Tenho um script que tem um loop for que é executado um número específico de vezes e queria saber se é possível implementar o comando pv no meu script para adicionar uma barra de progresso.

Aqui está meu código:

for i in $(seq 1 10000000); do
    echo "iteration ${i}"
    #rest of for loop
done

registro:

iteration 1
iteration 2
iteration 3
iteration 4
iteration 5
iteration 6
iteration 7
iteration 8
iteration 9
iteration 10
*and so on

se alguém puder me ajudar com isso, qualquer ajuda será muito apreciada

edição: mudei um pouco o código:

for i in $(seq 1 10000000); do
    echo "iteration ${i}" | pv -l
    #rest of for loop
done

e me deu esta saída:

1
1.00  0:00:00 [15.2k/s] [  <=>                                                                                                                             ]
2
1.00  0:00:00 [14.7k/s] [  <=>                                                                                                                             ]
3
1.00  0:00:00 [15.6k/s] [  <=>                                                                                                                             ]
4
1.00  0:00:00 [15.0k/s] [  <=>                                                                                                                             ]
5
1.00  0:00:00 [15.0k/s] [  <=>                                                                                                                             ]
6
1.00  0:00:00 [11.5k/s] [  <=>                                                                                                                             ]
7
1.00  0:00:00 [5.54k/s] [  <=>                                                                                                                             ]
8
1.00  0:00:00 [14.7k/s] [  <=>                                                                                                                             ]
9
1.00  0:00:00 [13.2k/s] [  <=>                                                                                                                             ]
10
1.00  0:00:00 [13.4k/s] [  <=>                                                                                                                             ]
shell-script
  • 2 respostas
  • 78 Views
Prev
Próximo

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