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

WesternGun's questions

Martin Hope
WesternGun
Asked: 2022-07-05 02:10:40 +0800 CST

Como imprimir logs em cores com chamada repetitiva para uma função que configura a cor?

  • 1

Quero imprimir logs com palavras-chave coloridas. Anteriormente eu usava:

cd ~/Code/Docker/somerepo && docker-compose logs -f my_service \
  | grep -v "Successfully connected" \
  | grep -v "this operation breaks ==" \
  | sed "s/at com\.example\.product/at \x1b[32mcom\.example\.product\x1b[0m/g" \
  | sed "s/caused by/\x1b[31mcaused by\x1b[0m/g"

como uma função e funciona.

Agora eu quero extrair a definição de cor e colocá-la em uma função chamada get_colorand print_in_color:

get_color() {
    number=
    case "$1" in
        RED)
        number='31'
        ;;
        GREEN)
        number='32'
        ;;
        YELLOW)
        number='33'
        ;;
        BLUE)
        number='34'
        ;;
        PURPLE)
        number='35'
        ;;
        *)
        number='38'
        ;;
    esac
    echo '\x1b['$number'm'
}

# $1 string, $2 color(RED, YELLOW, BLUE, GREEN, PURPLE)
print_in_color() {
    while read data;
    do
        color=$(get_color $2)
        nocolor='\x1b[0m'
        echo $1 | sed "s/$1/${color}$1${nocolor}/g"
    done;
}

E usá-lo como

log_color() {
    cd ~/Code/Docker/somerepo && docker-compose logs -f my_service \
    | grep -v "Successfully connected" \
    | grep -v "this operation breaks ==" \
    | print_in_color 'com\.example\.product' BLUE \
    | print_in_color 'caused by' RED
}

Mas agora só imprime caused byem vermelho.

Como eu poderia definir uma função para retornar um pipe a pipe em outra função?

shell-script docker-compose
  • 1 respostas
  • 21 Views
Martin Hope
WesternGun
Asked: 2019-02-02 01:24:59 +0800 CST

defina o alias para ler a variável e depois use no segundo comando; só funciona quando eu os executo manualmente

  • 0

Estou com o CentOS 7 e quero vincular um alias para iniciar o shell do PostgreSQL (psql). Eu defini esse alias e o anexei em /etc/profile.d/alias:

alias psql-local="read -p \"PSQL: enter the DB to connect: \" db ; sudo -i -u postgres psql --dbname $db"

É executável por root.

E, eu faço login como roote executo alias, recebo:

alias psql-local='read -p "PSQL: enter the DB to connect: " db ; sudo -i -u postgres psql --dbname '

Observe aqui $dbno final está vazio.

Então eu corro psql-local, mas recebo erro:

[root@lucas_vm ~]
> psql-local
PSQL: enter the DB to connect: jfps
psql: option '--dbname' requires an argument
Try "psql --help" for more information.

Então eu entro /etc/profile.d/e executo alias.shmanualmente, então de repente eu posso usar este alias:

[root@lucas_vm /etc/profile.d]
> . alias.sh
[root@lucas_vm /etc/profile.d]
> psql-local
PSQL: enter the DB to connect: jfps
psql (10.5)
Type "help" for help.

jfps=#

Se eu sair psqle executar aliasnovamente, vejo esta linha alterada:

alias psql-local='read -p "PSQL: enter the DB to connect: " db ; sudo -i -u postgres psql --dbname jfps'

A nota $dbé alterada para jfps.

Então, tento acessar outro banco de dados, e ele funciona novamente.

Mas, quando saio e alias, vejo o --dbname jfps, não o nome do segundo banco de dados. Quando I echo $db, em vez disso, é o nome do segundo banco de dados.

Por quê?

shell-script alias
  • 1 respostas
  • 61 Views
Martin Hope
WesternGun
Asked: 2018-05-30 09:47:05 +0800 CST

Como posso definir o layout do teclado para a tela de login antes do primeiro login bem-sucedido no CentOS 7?

  • 1

Eu percebo isso adicionando

setxkbmap xxx

podemos alterar o layout do teclado no servidor X. Ele não pode sobreviver ao logout/reinicialização, então podemos adicionar esta linha $HOME/.profilepara disponibilizá-la quando fizermos login, como esta pergunta descreve.

Mas, quando fazemos isso, antes de fazer o login, o layout do teclado ainda não está disponível. Se quisermos usá-lo nesta fase, qual é o caminho a percorrer? Estou usando o GDM no Centos7.

O que eu tentei:

  1. Defina um novo layout de teclado, chamado symmetri, e coloque-o em /usr/share/X11/xkb/symbols/. Para testar, você pode baixá-lo aqui . NOTA: Eu defini apenas o layout para o servidor X11, ainda não para o console virtual. Talvez seja por isso que não posso enumerá-lo com locatectl list-keymaps, nem loadkeys, nem tocando /etc/vconsole.conf.

  2. setxkbmap symmetripara usá-lo. Alterações aplicadas. Coloque-o /etc/profile.d/symmetri.shpara usá-lo no perfil do usuário.

  3. Saia e, quando tento fazer login, ele para de funcionar e recebo o QWERTY.

  4. Eu faço login com QWERTY e, em seguida, uso o Symmetri agora, porque o script é obtido após o login bem-sucedido.

  5. Terminal aberto, volto para usby setxkbmap us,

E depois,

localectl set-x11-keymap symmetri

Desta vez, o layout não é alterado. localectl set-keymap symmetrinenhum.

keyboard-layout x11
  • 2 respostas
  • 3806 Views
Martin Hope
WesternGun
Asked: 2018-02-24 00:11:01 +0800 CST

systemd - define um serviço sem ExecStop e pode pará-lo sem "falha"

  • 0

Estou com o CentOS 7 e quero iniciar o produtor autônomo Kafka (File Connector) como um serviço. O comando é:

/opt/kafka/bin/connect-standalone.sh /opt/kafka/config/connect-standalone.properties /opt/kafka/config/connect-file-source.properties

E, obviamente, não tem comando de parada. Normalmente, eu apenas Ctrl+Cparo como um processo de primeiro plano.

Mas quando eu testei, achei muito tedioso abrir várias sessões de console de terminal para executar vários processos (Zookeeper, servidor Kafka, produtor Kafka, Storm jar, etc.) então troquei o Zookeeper e o servidor Kafka como serviço, que têm seu stopscript. Mas neste caso, não.

Já tentei systemctl start kafka-producere systemctl stop kafka-producer, mas o serviço entrou em failedstatus, e não está parado. Tive que excluir o serviço, recarregar o daemon e mudar para manual novamente.

kafka-producer.service:

[Unit]
Description=Kafka Producer
After=network.target

[Service]
Type=simple
ExecStart=/opt/kafka/bin/connect-standalone.sh /opt/kafka/config/connect-standalone.properties /opt/kafka/config/connect-file-source.properties
Restart=on-abort

[Install]
WantedBy=default.target

Enfim para manipular um serviço sem ExecStopcomando?

systemd services
  • 2 respostas
  • 2168 Views
Martin Hope
WesternGun
Asked: 2018-02-15 07:54:02 +0800 CST

Diferencie/decore a entrada e a saída da linha de comando (com cor ou recuo)

  • 0

Em um bash do CentOS (ou, se houver uma maneira geral em outros bashes, como o Ubuntu, melhor), como posso diferenciar os comandos digitados por mim com a saída dos comandos?

Pergunto isso porque quando uso um comando que sai muito na tela, fica difícil saber onde começa. Eu quero, por exemplo, decorar meus comandos com uma cor brilhante e a saída com uma cor mais escura, ou recuar a saída em 4.

Que pode ser como:

[root@westerngun ~]# ps aux | grep myname                             <- brighter
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   <- darker
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Ou:

[root@westerngun ~]# ps aux | grep myname                          
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  <- indented by 4
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bash centos
  • 1 respostas
  • 586 Views
Martin Hope
WesternGun
Asked: 2017-12-16 01:28:56 +0800 CST

Centos7 - instalação mínima: echo $TERM me dá 'linux' e 'tput colors' dá '8'. Como mudar isso?

  • 0

Instalei o mínimo do CentOS 7. No terminal nativo, parece não haver mais de 8 cores.

echo $TERM
linux
tput colors
8

Então, como posso obter suporte para 256 cores no vim? viversão 7.4.160.

Na massa diz, xtermmas acho que no sistema nativo não tenho.

centos vim
  • 1 respostas
  • 1445 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