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-292343

frans's questions

Martin Hope
frans
Asked: 2024-12-10 23:55:11 +0800 CST

Escape de argumento avançado com find + xargs e comandos aninhados

  • 6

Eu sei que quando você tem problemas ao canalizar a saída de eg find ..para xargsdevido a nomes de arquivo 'estranhos', pode ajudar usar um delimitador específico (por exemplo, \0) para realmente passar nomes de arquivo completos (por exemplo find foldername/ -type f -print0 | xargs -0 ..., . E 'sempre' ajuda citar strings problemáticas para especificar seus limites.

Mas e se essas strings (nomes de arquivo) contiverem caracteres sensíveis ao bash como ', ", `, (,.. ? e você quiser usar uma string duas vezes (ou seja, tiver que usar sh -c .. e precisar injetar essas strings em comandos aninhados (ou seja, $(CMD))?

Por exemplo:

# create a file which should not exist but does
mkdir remove_afterwards
touch remove_afterwards/"some [\"strange\"] ('file')" 

# this will work
find remove_afterwards/ -type f -print0 | xargs -0 -I{} sh -c 'echo "{}"'

# but this won't due to the nested command
find remove_afterwards/ -type f -print0 | xargs -0 -I{} sh -c 'echo "{}" $(stat -c "%s" "{}")'
stat: cannot statx 'remove_afterwards/some [strange] ('\''file'\'')': No such file or directory
remove_afterwards/some [strange] ('file')

Ainda não descobri como escapar do segundo {}interior $().

Existe uma maneira?

É verdade que um script real com funções tornaria tudo isso mais fácil de escrever e ler, mas estou curioso e ter uma frase tão curta na história vale o esforço de escrever esta pergunta.

bash
  • 1 respostas
  • 20 Views
Martin Hope
frans
Asked: 2024-01-11 23:18:54 +0800 CST

Como garantir que um processo gerado via ssh seja encerrado com a conexão?

  • 5

Aparentemente, as pessoas tentam manter os processos iniciados em sshexecução, mesmo quando a conexão termina, consulte https://duckduckgo.com/?q=ssh+process+still+active+after+connection+close

Então eu acreditava que os processos normalmente seriam encerrados com a conexão - até hoje.

grepAnalisando aleatoriamente a saída de psna minha máquina, encontrei processos que gerei semanas atrás usando sshe me perguntei como eles chegaram lá, e agora não sei como não manter um processo ativo (consulte https://xkcd.com/2797 ).

Iniciando processos de longa execução como htop, sleepou dmesgcomo usuário normal (mas qualquer outro usuário também está bem) assim

ssh localhost sleep 123

permaneça vivo até que eu os mate manualmente.

pstree -spc $(pgrep -f "sleep 123")

enquanto a conexão ainda está viva me dá

systemd(1)───sshd(1299)───sshd(1887616)───sshd(1887654)───sleep(1887655)

Mas depois de encerrar a sessão ssh (usando CTRL-C), o mesmo comando me dá

systemd(1)───sleep(1887655)

Então, para mim, parece sshdque a conexão acabou, mas em vez de encerrar o processo associado, ele a entrega systemd.

Mesmo que todos pareçam tentar conseguir o oposto, como posso ter certeza de que o encerramento de uma sshconexão também encerra/interrompe o processo gerado?

Nota: ssh localhost -t sleep 123de alguma forma resolve meu problema, mas IMO porque muda a maneira como stdin/stdout está sendo tratado. Posso dizer sshpara não entregar processos depois que a conexão for encerrada?

linux
  • 1 respostas
  • 17 Views
Martin Hope
frans
Asked: 2021-06-22 05:50:03 +0800 CST

No Docker, existe uma maneira de manter "aliases" (atualizáveis ​​e rastreáveis) para imagens?

  • 5

Em um projeto com várias referências a certas imagens do Docker, quero fornecer uma maneira versionável (ou seja, git-trackable) de usar nomes comuns para imagens do Docker.

Atualmente, em vários lugares em um projeto existente, alguns scripts Bash/Python, arquivos Docker ou arquivos Jenkins que estou referenciando, por exemplo, busybox:latest. Agora quero usar nomes legíveis para imagens exclusivas sem redundância.

Pelo que entendi eu poderia usar meu próprio registro, fornecer uma tag legível e apenas usar a tag ou o repo-digest correto:

docker pull busybox:latest
docker tag busybox:latest my_registry/busybox:default
docker push my_registry/busybox:default

# use
docker pull busybox@sha256:dca712...86b  <- has to be maintained manually
# or
docker pull my_registry/busybox:default <- not updateable or not unique for given commit

Mas agora eu também quero que os sha1s distintos por trás também sejam atualizados e rastreáveis ​​pelo git (sem ter que escrever redundantemente o sha em todos os lugares). Talvez eu não esteja usando as palavras corretas, mas o que eu preciso pode ser alcançado usando um arquivo de texto contendo algum tipo de "aliases", por exemplo

docker_aliases.txt :

my_registry/busybox_default sha256:dafhs3ca712...3486b
my_registry/ubuntu-20.04 sha256:6a507907bd4e...a50

que poderia ser usado de alguma forma com todas as chamadas do Docker que envolvem a extração de imagens e me permitiriam

  • use my_registry/busybox_defaultcomo especificador de imagem em todos os lugares
  • tem um lugar para atualizar esses aliases
  • que pode ser rastreado pelo git (muito importante)

Parece que todo mundo que está mantendo algum CI maior deve se deparar com esse problema. Existe uma solução geral para isso?

docker version-control
  • 1 respostas
  • 45 Views
Martin Hope
frans
Asked: 2021-01-03 02:34:59 +0800 CST

No Fedora, por que tenho que instalar um pacote devel para obter o javac?

  • 9

Pelo que ouvi, 'JDK' significa Java Development Kit, e em sistemas baseados em Debian você instala default-jdkpara obter um javac. No entanto, no Fedora (pelo menos os recentes), a instalação java-openjdknão será instalada, javacmas você precisará instalar, java-openjdk-develpor exemplo.

Não entendi o conceito de JDK em relação ao javac? Ou por que um pacote com um nome contendo 'jdk' não é fornecido javacno Fedora? Eu entenderia se houvesse apenas um porquejava-openjdk-devel JDK implica 'devel', mas não entendo o que java-openjdk(sem o devel) significa.

java fedora
  • 3 respostas
  • 376 Views
Martin Hope
frans
Asked: 2020-06-07 01:31:26 +0800 CST

No Fedora - como encontro arquivos (de configuração) que foram alterados desde a instalação?

  • 5

No momento, estou observando um problema com meu dispositivo de som integrado (dispositivo NUC popular) e ainda não encontrei solução para isso. Portanto, atualmente estou "esperando" ter feito algumas modificações em algum arquivo de configuração no passado que agora causa o problema.

Mas como eu encontraria essas modificações? Não me lembro de mexer nos meus arquivos de configuração em primeiro lugar.

Além de comparar com uma instalação paralela do meu sistema operacional manualmente - o Fedora fornece alguma maneira de encontrar modificações de arquivos que foram instalados com dnf? A maneira mais sofisticada que eu acho seria uma maneira de encontrar apenas modificações nos arquivos de configuração, mas se eu tivesse a chance de comparar todos os arquivos instalados dnfcom os originais, também seria ótimo.

Portanto, a versão curta da minha pergunta é:

  • existe uma maneira de encontrar modificações nos arquivos instalados com o Fedora/ dnf?
  • ou: existe uma maneira de obter o conteúdo de todos os arquivos instalados por dnf?
  • como faço para encontrar diferenças em um Fedora recém-instalado?

Minha abordagem atual seria armazenar o conteúdo /etc/e /usrreinstalar todos os pacotes, mas temo que isso seja ainda mais trabalhoso do que uma nova instalação.

linux fedora
  • 1 respostas
  • 933 Views

Sidebar

Stats

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

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

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