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

Alexander Mills's questions

Martin Hope
Alexander Mills
Asked: 2024-02-08 06:30:46 +0800 CST

systemd + - não é possível parar o serviço mongo

  • 5

Percebi que o mongo estava escutando na porta 27017

Tentei parar com:

$ sudo systemctl stop mongod Falha ao parar mongod.service: Unidade

mongod.service não carregado.

e então eu fiz:

sudo service mongod stop Falha ao parar mongod.service: Unidade

mongod.service não carregado.

então eu tive que fazer:

ps aux | grep mongo

e eu vi

systemd+    2082  0.0  0.7 2581952 127376 ?      Ssl  Feb04   3:02 mongod --bind_ip_all

então o que é systemd + e como faço para gerenciá-lo?

linux
  • 1 respostas
  • 19 Views
Martin Hope
Alexander Mills
Asked: 2023-10-06 00:09:44 +0800 CST

Agrupar resultados usando comunicação

  • 5

Usando comm, obtenho resultados que parecem estranhos com isso:

comm -3 <(. "$first_env_file"; env) <(. "$second_env_file"; env) 

Eu recebo algo como:

AUTH_LP_ACCOUNT_ID=xxx1
        AUTH_LP_ACCOUNT_ID=xxx2
        AWS_IMAGE_DOMAIN_NAME=abc
AWS_IMAGE_DOMAIN_NAME=zyx
NODE_ENV=local
        NODE_ENV=staging
        NODE_PORT=3000
NODE_PORT=4000
REDIS_HOST=localhost
        REDIS_HOST=redis

(e sim, os espaços na frente (guias/espaços anexados) estão lá)

o que eu preferiria que fosse algo assim:

--begin--
AUTH_LP_ACCOUNT_ID=xx1
AUTH_LP_ACCOUNT_ID=xx2
---------
AWS_IMAGE_DOMAIN_NAME=abc
AWS_IMAGE_DOMAIN_NAME=zyx
---------
NODE_ENV=local
NODE_ENV=staging
---------
NODE_PORT=3000
NODE_PORT=4000
---------
REDIS_HOST=localhost
REDIS_HOST=redis
---end---

existe uma maneira de conseguir isso?

  1. para remover linhas anexadas, podemos canalizar através de `sed 's/^ *//.
  2. colocar --begin--e ---end---no início/fim é uma questão fácil
  3. mas como agrupar resultados facilmente?

Meu único palpite em 3 é fazer um loop em cada linha (pulando primeiro) e se o próximo resultado tiver um xxx= vs abc= diferente, então imprima a, --------mas não estou apaixonado por isso.

bash
  • 1 respostas
  • 32 Views
Martin Hope
Alexander Mills
Asked: 2023-10-03 23:32:49 +0800 CST

diferenciando dois arquivos .env

  • 5

Eu tenho dois arquivos env, digamos x.env e y.env, a ordem das variáveis ​​é diferente, mas o conteúdo pode ser o mesmo, mas provavelmente diferente.

Existe alguma ferramenta que eu possa usar para diferenciar as variáveis?

   env -i (
    # clear all envs
     source x.env;
     env | sort >  x.sh
    )

   env -i (
    # clear all envs
     source y.env;
     env | sort >  y.sh
    )

    diff x.sh y.sh

essa é a melhor maneira? se houver vários faltando, isso pode tornar a diferença barulhenta e pouco útil, enquanto comparar os nomes das variáveis ​​​​um por um pode ser melhor.

shell
  • 1 respostas
  • 28 Views
Martin Hope
Alexander Mills
Asked: 2022-02-21 15:53:28 +0800 CST

Como fazer alias de uma função e chamar da função com o nome original

  • 1

Este é mais um exercício acadêmico, mas curioso da resposta. Aqui está o código atual em questão:

export original_command_not_found_handler="$(type -f command_not_found_handler)" # original func as string

function command_not_found_handler(){  # my custom override
  echo "my custom handler: $@"
  echo "
     ${original_command_not_found_handler}
      command_not_found_handler "$@"
  " | bash

}

o que estou tentando fazer é substituir a função zsh original pela minha função personalizada e, em seguida, chamar a função original da substituição.

Há dois problemas com este código:

  1. Estou tentando chamar a função original de um subshell (piping para bash), mas seria melhor chamar do shell atual e não do subshell.
  2. não funciona, pois a função original não está sendo interpretada como desejado na string.
bash zsh
  • 1 respostas
  • 106 Views
Martin Hope
Alexander Mills
Asked: 2022-02-19 11:21:04 +0800 CST

gancho bash/zsh - Adicione ao PATH somente se nenhum arquivo correspondente for encontrado

  • 1

Estou procurando um gancho bash/zsh , que é invocado quando um comando não é encontrado.

Digamos que eu execute algum executável arbitrário:

xyz foo --bar
  1. diga que o bash/zsh não pode encontrar o executável.
  2. existe uma maneira de lidar com "não encontrado" e, em seguida, carregar algumas bibliotecas no PATH dinamicamente depois disso?

algo assim:

function xyz {
  if ! test -f xyz; then
     load_libs xyz
  fi
  command -v xyz;
}

algo como esta função, mas seria para executáveis ​​desconhecidos.

Então, genericamente, seria algo como:

function on_not_found {
  if ! test -f "$1"; then
     load_libs "$1"
  fi
  command -v "$@";
}
bash shell
  • 1 respostas
  • 193 Views
Martin Hope
Alexander Mills
Asked: 2020-03-11 19:39:29 +0800 CST

Como negar regex usando teste

  • 0

Isso está sintaticamente errado:

#!/usr/bin/env bash

dimension="4x5"

if [[ "$dimension" !=~ '[0-9]x[0-9]' ]]; then
 echo 'wtf meng, the dimension needs an "x" in it.'
 return 1;
fi

o acima tem uma sintaxe ruim ... então minha pergunta é - existe uma maneira de fazer!=~

... Eu estou supondo que é !~? Se isso for verdade, chega de regras de negação lulz. Bom testei e !~também não funcionou..

bash shell
  • 2 respostas
  • 739 Views
Martin Hope
Alexander Mills
Asked: 2020-03-04 21:31:37 +0800 CST

Verifique se há uma string não vazia no shell (em vez de ! -z)

  • -3

Eu sei que há uma maneira de fazer isso, mas os resultados da pesquisa na Internet sempre são ruins com essa pesquisa -

Eu quero fazer:

if [[ ! -z "$var" ]]; then
   # ....
fi

mas nunca me lembro, acho que é assim:

if [[ -p "$var" ]]; then
   # ....
fi

ou assim:

if [[ -n "$var" ]]; then
   # ....
fi

alguém pode fornecer uma boa resposta que apareça nos mecanismos de pesquisa, espero que se eu editar o título para ser o ideal, também ajude.

bash shell
  • 1 respostas
  • 1441 Views
Martin Hope
Alexander Mills
Asked: 2020-03-02 16:05:30 +0800 CST

Prática de nomenclatura padrão para executáveis ​​(arquivo binário) e como saber se um arquivo possui caracteres não imprimíveis?

  • 1

Então, muitas vezes sou culpado de executar catem um arquivo executável que é um arquivo binário e meu terminal geralmente faz alguns ruídos estranhos e não está feliz. Existe alguma convenção de nomenclatura aceita para dar uma extensão ao arquivo codificado binário/executável?

Eu tenho um arquivo executável (a saída de go build -o /tmp/api.exe .e eu, como acabei de mencionar, acabei de chamá-lo de .exe, mas estou me perguntando se há uma maneira de verificar um arquivo antes de catá-lo para ver se é utf8 ou qualquer outra coisa.

files cat
  • 1 respostas
  • 667 Views
Martin Hope
Alexander Mills
Asked: 2020-02-25 12:33:25 +0800 CST

sh (não bash) não reconhece simples [ ou duplo [[ colchetes?

  • 1

Eu tenho este roteiro:

#!/usr/bin/env sh

# note: we must use sh instead of bash, it's more cross-platform

set -e;

if [[ "$skip_postinstall" == "yes" ]]; then   # TODO rename 'skip_postinstall' to something more specific
    echo "skipping postinstall routine.";
    exit 0;
fi

export FORCE_COLOR=1;
export skip_postinstall="yes";   # TODO rename 'skip_postinstall' to something more specific

mkdir -p "$HOME/.oresoftware/bin" || {
  echo "Could not create .oresoftware dir in user home.";
  exit 1;
}

(
  echo 'Installing run-tsc-if on your system.';
  curl  -H 'Cache-Control: no-cache' -s -S -o- 'https://raw.githubusercontent.com/oresoftware/run-tsc-if/master/install.sh' | bash || {
     echo 'Could not install run-tsc-if on your system. That is a problem.';
     exit 1;
  }
) 2> /dev/null


if [[ "$(uname -s)" != "Darwin" ]]; then
   exit 0;
fi

if [[ ! -f "$HOME/.oresoftware/bin/realpath" ]]; then
  (
    curl --silent -o- 'https://raw.githubusercontent.com/oresoftware/realpath/master/assets/install.sh' | bash || {
       echo "Could not install realpath on your system.";
       exit 1;
    }
  )
fi

# the end of the postinstall script

quando eu executo, recebo:

./assets/postinstall.sh: 7: ./assets/postinstall.sh: [[: not found
Installing run-tsc-if on your system.

 => Installing 'run-tsc-if' on your system.
 => run-tsc-if download/installation succeeded.

./assets/postinstall.sh: 29: ./assets/postinstall.sh: [[: not found
./assets/postinstall.sh: 33: ./assets/postinstall.sh: [[: not found

mas se eu substituir os colchetes duplos [[ por colchetes simples, recebo:

./postinstall.sh: 7: [: unexpected operator

que vem apenas de:

if [ "$skip_postinstall" == "yes" ]; then  
    echo "skipping postinstall routine.";
    exit 0;
fi

hum o que eu faço? Eu tentei usar testem vez de [e [[e isso também não funcionou.

shell test
  • 2 respostas
  • 651 Views
Martin Hope
Alexander Mills
Asked: 2020-02-21 20:06:07 +0800 CST

tmux kill-window não mata processos filhos

  • 4

Se eu fizer ctrl- ce ctrl- dmatar procs em painéis e depois sair do tmux, todos os processos filhos morrerão.

Mas se eu fizer isso:

ctrl+ bseguido por shift+%

então selecione Y para matar a janela, então os procs permanecem vivos. Alguma idéia de como garantir que os procs sejam mortos quando a janela for morta?

tmux
  • 2 respostas
  • 1747 Views
Martin Hope
Alexander Mills
Asked: 2020-01-31 13:02:04 +0800 CST

Alternativa para modificar /etc/hosts para pesquisa de DNS

  • 0

Eu sou um novato em rede - pingnão consigo localizar certos nomes de DNS, então eu os coloco em /etc/hosts assim:

10.128.0.22 kafka.marathn.meso
10.128.0.31 elasticsearch.marathn.meso

e então pingpode encontrá-los. Existe uma maneira mais dinâmica/escalável de mapear os nomes DNS para um endereço IP, caso o endereço IP mude?

dns ping
  • 1 respostas
  • 198 Views
Martin Hope
Alexander Mills
Asked: 2020-01-24 17:52:23 +0800 CST

Diferença entre subshell e bloco if

  • -1

Existe alguma diferença entre:

set -e;
./create-git-tag.sh || {
   echo 'Could not create git tag.'
   exit 1;
}

e

set -e;
if ! ./create-git-tag.sh; then 
    echo 'Could not create git tag.'
    exit 1;
fi

Estou supondo que o bloco if não cria um subshell e, portanto, sairia antes que o bloco if fosse inserido? Eles parecem funcionar da mesma forma, existem diferenças de comportamento?

bash shell
  • 2 respostas
  • 338 Views
Martin Hope
Alexander Mills
Asked: 2020-01-21 13:18:49 +0800 CST

Como obter o dirname do caminho

  • -2

Eu tenho isto:

find . -type f -name '*_test.go' | xargs dirname

mas eu recebo:

uso: caminho do dirname

a saída de

$ find . -type f -name '*_test.go' 

é:

./pkg_test.go
./v3/organization/organization_test.go
./v3/common/pkg_test.go
./v3/model/boil_main_test.go
./v3/model/boil_queries_test.go
./v3/model/advances_test.go
./v3/model/boil_suites_test.go
./v3/model/psql_main_test.go
./v3/model/psql_suites_test.go

alguém sabe como posso obter o dirname do arquivo? Talvez eu precise de caminhos absolutos?

bash find
  • 1 respostas
  • 1117 Views
Martin Hope
Alexander Mills
Asked: 2019-10-22 13:12:33 +0800 CST

Como redirecionar para um arquivo de um heredoc

  • 4

Eu tenho isto:

cat <<EOF

'use strict';

exports.default = {

  'display names': {}

}

EOF >  "$PWD/tmp.js"

mas isso está sintaticamente errado aparentemente, alguém sabe a sintaxe para fazer isso?

bash
  • 1 respostas
  • 1246 Views
Martin Hope
Alexander Mills
Asked: 2019-10-05 15:28:47 +0800 CST

serviço systemd não dura mais de 6 horas

  • 1

Estou recebendo esta mensagem de erro nos meus logs:

 Stopping User Manager for UID 1000

Acho que é por isso que meu serviço systemd não continua funcionando. Alguém sabe o que isso significa e como posso manter meus serviços funcionando 24 horas por dia, 7 dias por semana? A definição de serviço se parece com:

[Unit]
Description=Interos MongoDB+ES log capture
After=network.target

[Service]
Environment=interos_emit_only_json=yes
EnvironmentFile=/home/ubuntu/env/es-service.env
StartLimitIntervalSec=0
Type=simple
Restart=always
RestartSec=1
ExecStart=/home/ubuntu/repos/elastic-search-app/syslog-exec.sh

[Install]
WantedBy=multi-user.target
systemd
  • 1 respostas
  • 444 Views
Martin Hope
Alexander Mills
Asked: 2019-10-04 22:17:34 +0800 CST

Como escrever em /var/log/system.log em um Mac

  • 2

Estou seguindo o system.log em um mac:

tail -f -n 0 /var/log/system.log

mas não consigo descobrir como gravar neste log. Parece ser o log principal na máquina. Eu tentei:

logger foobar  # didn't work
syslog -s -l error "message to send"  # didn't work

alguém sabe como escrever para o system.log em um Mac?

atualização :

se eu correr:log stream

e depois use:

logger -is -t krypted "Hello L"

ele aparecerá no fluxo, mas não no /var/log/system.log. estranhas.

osx
  • 1 respostas
  • 5162 Views
Martin Hope
Alexander Mills
Asked: 2019-09-26 15:50:46 +0800 CST

como executar condicionalmente um comando diferente com os mesmos argumentos

  • 0

se gtar estiver definido, quero usar isso, em vez de tar:

if command -v gtar; then
  gtar --exclude-ignore='.deployignore' -cf /dev/stdout . | aws s3 cp - "$arti_fact"
else
  tar --exclude-ignore='.deployignore' -cf /dev/stdout . | aws s3 cp - "$arti_fact"
fi

no entanto, isso é pecar até DRY. Existe alguma maneira de executar um comando diferente com os mesmos argumentos condicionalmente?

bash
  • 1 respostas
  • 94 Views
Martin Hope
Alexander Mills
Asked: 2019-09-24 15:28:43 +0800 CST

Não é possível cat. arquivo .pem embutido como opção -i para ssh

  • 1

Estou recebendo este erro:

Aviso: Arquivo de identidade /dev/fd/63 não acessível: Descritor de arquivo inválido.

ao executar este comando:

ssh -Y '[email protected]' -i <(cat << EOF
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAgbUQXIfIWtMJpYcTn5C+LStaL8NICo/0l1V33IQ8pQADUk+Tq+cfotyiHrRl  
JXRyn8KJe8zmAQs7uSR3drVdj2KNFhXnFsEbXYxjAS93ZutO1Z2eBvvKcp/W8AoOr7r2JtTXaGml
W18/0Fot83UcVRdqYI4CCv5hhYN7oGDYT94d8d0yFtuIhXf8IlkCgYEAkugROAktxuG1AgQ9KGP5
.........
a3ZAHHf5F2rn0oW0X5YNtEWqhGknYQkkiztqaWAPM4bAP7gpDIqYyqh81soqYHxxP9q2Ch634NPb
BMmdZb9hMb/PY9bJNKwZt/yO7W0yq1zzjXFIqhymGDqkc/E4/K+V+svsDIV8VtainrY=
-----END RSA PRIVATE KEY-----
EOF
)
nix-collect-garbage

Estou apenas tentando executar o comando 'nix-collect-garbage' na máquina remota.

Talvez o arquivo temporário/fd tenha as permissões erradas? Existe uma maneira de dar as permissões corretas?

Suponho que seja um problema de permissões com a substituição do processo, mas não tenho certeza de como resolvê-lo.

shell
  • 1 respostas
  • 361 Views
Martin Hope
Alexander Mills
Asked: 2019-09-21 20:07:05 +0800 CST

Maneira correta de desligar o consumidor

  • 4

Digamos que temos um pipeline simples:

set -eo pipefail;
echo 'foo' | cat

como catsabe quando sair? É quando o fluxo STDIN termina ou catrecebe um sinal? No meu caso, o processo produtor recebe um SIGINT e sai com o código 1, então como pode cat(processo consumidor) saber com qual código de saída o processo produtor saiu?

bash
  • 1 respostas
  • 457 Views
Martin Hope
Alexander Mills
Asked: 2019-09-19 12:47:03 +0800 CST

Melhor maneira de 'tee' para stdout e para um processo

  • 1

Eu quero fazer algo assim:

echo 'foo' | tee /dev/stdout > >(cat)

de onde o stdout echoé enviado para o terminal e para o processo cat. Existe uma maneira mais simples de fazer isso?

Quando eu executo isso:

 echo 'foo' | tee >(echo 'bar')

por algum motivo, ele não ecoa 'foo', apenas ecoa 'bar', por quê?

bash
  • 3 respostas
  • 2170 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