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

iamAguest's questions

Martin Hope
iamAguest
Asked: 2018-09-21 07:04:39 +0800 CST

Como devo usar a citação com eco no Puppet?

  • -1

Estou tentando usar echodentro de uma regra Puppet para adicionar uma linha a .bashrc, mas não consigo acertar a citação.

'/usr/bin/echo -E PS1=\"[\t--------------------------------------------------------\n-\u@\h:\W]\$\" >> /home/unu/.bashrc'

Essa coisa me dá o seguinte resultado:

PS1="[t--------------------------------------------------------n-u@h:W]$"

Outra tentativa:

'/usr/bin/echo -E PS1="[\t--------------------------------------------------------\n-\u@\h:\W]\$" >> /home/unu/.bashrc'

Essa coisa me dá o seguinte:

PS1=[\t--------------------------------------------------------\n-\u@\h:\W]$

Outro:

'/usr/bin/echo -e PS1="[\\t--------------------------------------------------------\\n-\\u@\\h:\\W]\\$" >> /home/unu/.bashrc'

Este está me dando isso:

PS1=[   --------------------------------------------------------
-\u@\h:\W]$

Não consigo encontrar uma maneira de fazer isso sem ter \ou "interpretado de alguma forma. Como devo fazer isso?

Pensei em usar mais aspas, mas isso causa um erro de sintaxe do Puppet:

"/usr/bin/echo -e 'PS1="[\\t--------------------------------------------------------\\n-\\u@\\h:\\W]\\$"' >> /home/unu/.bashrc"

Obtém este resultado:

Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Syntax error at '' (file: /etc/puppetlabs/code/environments/production/modules/profile/manifests/ps1.pp, line: 3, column: 38) on node centoslave1

Este é o código inteiro:

class profile::ps1 {
        exec { 'myps1':
        command => "/usr/bin/echo -e 'PS1="[\\t--------------------------------------------------------\\n-\\u@\\h:\\W]\\$"' >> /home/unu/.bashrc"
        }
}
bash echo
  • 4 respostas
  • 1374 Views
Martin Hope
iamAguest
Asked: 2018-09-20 05:19:26 +0800 CST

Comando não encontrado quando executado como sudo

  • 3

Estou executando centos7. Eu instalei o fantoche. se eu escrever puppetcomo usuário, recebo uma saída adequada. Se eu escrever sudo puppeteu recebo command not found.

A coisa realmente estranha é, se eu fizer sudo su -e me tornar root, então escrever puppet, recebo a saída normal que recebo quando executo com o usuário normal ...

[unu@centosmaster puppet]$ puppet
See 'puppet help' for help on available puppet subcommands
[unu@centosmaster puppet]$ sudo puppet
sudo: puppet: command not found
[unu@centosmaster puppet]$ sudo su -
Last login: Wed Sep 19 08:41:20 EDT 2018 on pts/0
[root@centosmaster ~]# puppet
See 'puppet help' for help on available puppet subcommands

Isso, para mim, não faz absolutamente nenhum sentido...

A $PATHvariável é a mesma para usuário root e normal.

sudo path
  • 1 respostas
  • 3058 Views
Martin Hope
iamAguest
Asked: 2018-09-18 00:40:16 +0800 CST

O agente Puppet não executa o manifesto do regexp

  • 0
node 'node-slave01' {
        include repo::git
        include fun::cmatrix
}
node 'node-slave02' {
        include repo::hg
        include fun::toilet
}
node 'node-slave03' {
        include fun::rup
        include repo::svn
        include fun::cmatrix
}
node 'node-slave04' {
        include repo::git
        include repo::hg
        include repo::svn
        include fun::cmatrix
        include fun::toilet
}
node /node-slave\d+/ {
        include lamp
        include test
        include fun::rup
        include sup
}

Então tudo em /node-slave\d+/não é executado. Se eu pegar o supmódulo e colocá-lo em qualquer um dos 4 nós, ele será executado depois que eu escrever sudo puppet agent --test, mas não se estiver sob o regexp.

Como faço isso se eu quiser que certos nós façam certas coisas, mas há alguns comandos que eu quero que todos eles façam? Escrever include supem cada nó parece extremamente irritante.

puppet
  • 1 respostas
  • 31 Views
Martin Hope
iamAguest
Asked: 2018-08-30 23:30:32 +0800 CST

A instância da AWS me permite fazer ssh com uma chave privada pela primeira vez sem uma senha

  • -1

Não se trata de copiar a chave pública no servidor e depois ssh-ing, se você vai sugerir isso.

Então, criei uma instância do AWS Linux e criei um par de chaves ssh e baixei automaticamente a chave privada.

Agora posso me conectar à minha instância do AWS Linux simplesmente:

ssh -i key_they_gave_me ec2-user@AWSinstanceIP

Como faço para configurar esse tipo de coisa para minhas próprias vms Linux? Para que alguém possa simplesmente entrar nele com a chave privada, sem precisar de uma senha?

EDIT: não estou falando de copiar o id_rsa.pub. Eu sei como fazer isso, e a instância da AWS não exige isso. Isso é o que eu quero.

ssh
  • 3 respostas
  • 146 Views
Martin Hope
iamAguest
Asked: 2018-08-24 06:44:50 +0800 CST

Tar crontab não está funcionando, enquanto o comando funciona sozinho [duplicado]

  • 0
Essa pergunta já tem respostas aqui :
O que há de errado com esses dois cron jobs? (3 respostas)
Fechado há 4 anos .

eu tenho esse crontab

* * * * * tar -czf /backup/$(date +%F--%T)-localusers.tgz /vagrant

Não funciona. Mas se eu fizer

tar -czf /backup/$(date +%F--%T)-localusers.tgz /vagrant/

Funciona.

Alguém tem ideia do que está acontecendo? Eu continuo recebendo um e-mail embora:

N 10 (Cron Daemon) Thu Aug 23 10:43 28/1130 "Cron <root@localhost> tar -czf"

tar cron
  • 1 respostas
  • 1068 Views
Martin Hope
iamAguest
Asked: 2018-08-24 04:18:57 +0800 CST

Como fazer o tar criar uma pasta se ela não existir ao criar o arquivo

  • 0

O tar tem alguma opção onde, ao criar um arquivo, se o diretório de destino não existir, ele o cria por conta própria?

Então eu tenho pastas /1/2, mas não tenho pasta /1/2/3/. Existe alguma opção que eu possa usar para o tar poder fazê-lo?

Eu preciso disso para um script, mas se não houver opção, seria melhor fazer algo assim?

mkdir /1/2/3/ &> /dev/null

Se a pasta não estiver lá, ela será criada, mas se já estiver lá, não receberei uma mensagem de erro porque coloquei tudo em null.

Agora, com este método, há ALGUMA COISA que poderia dar errado?

Basicamente, estou fazendo um script que exclui usuários, mas você pode escolher uma opção para arquivar seus diretórios pessoais antes que o script exclua o usuário. Para tornar o script utilizável em outras máquinas, tenho que criar uma pasta chamada /archives, que pode ou não existir em outras máquinas.

Como o tar aparentemente não pode criar recursivamente qualquer caminho que você especificar para o arquivo (por exemplo, ele não pode criar /archives/usersse você escrever tar -czf /archives/users/user1.tgz /home/user1/se /archivesnão existir.

O que me leva à minha pergunta sobre minha solução: escrever mkdir -p /archives/users/ &> /dev/null. Isso atrapalharia alguma coisa? Tenha em mente que este script só pode ser executado com sudo, pois é um script de exclusão de usuário.

directory tar
  • 2 respostas
  • 6956 Views
Martin Hope
iamAguest
Asked: 2018-08-23 23:42:48 +0800 CST

Tratando a entrada para o comando de leitura como um comando em si

  • 1

Digamos que eu defini essa função no script:

fct1() {
  local msg1=${@}
if [[ "${verb}" = 'tru' ]]; then
  echo "I say $msg1"
  sleep 1
  echo "i repeat"
  sleep 1
  echo "I saaaaaaaaay $msg1"
else
  echo "$msg1"
fi
}

Como eu faria para fazer um usuário chamar essa função de read?

estou pensando algo como

read fct1 "aha aha ahaaaaa"

E a saída seria:

"I say aha aha ahaaaaa" "I repeat" "I saaaaaaaaay aha aha ahaaaaa"

Basicamente, como faço para usar a entrada reade não armazená-la em uma variável, mas usá-la como um comando?

Obrigado.

bash shell-script
  • 3 respostas
  • 126 Views
Martin Hope
iamAguest
Asked: 2018-08-23 03:45:10 +0800 CST

Se a instrução funciona com [ mas não com [[ ao comparar strings com -eq [duplicado]

  • 0
Essa pergunta já tem respostas aqui :
A "expansão aritmética" é a ação esperada em vars dentro de testes `[[`? (3 respostas)
Fechado há 4 anos .

Meu código:

#!/bin/bash

x=${#}

for (( a=0; a<x; ++a)); do
   if [[ $1 -eq $1 ]] 2> /dev/null
   then
      variable[a]=${1}
      shift
   else
      echo "The argument $1 is NOT an integer. Aborting this"
      exit 1
   fi
done
TOTAL=0
for (( a=0; a<x; ++a)); do
      echo "TOTAL : ${TOTAL}"
      TOTAL=$((TOTAL+variable[a]))
done
echo "Everything accounted to $TOTAL"
exit 0

Então, basicamente, ele pega os argumentos do script e os resume. Se um dos argumentos não for um número inteiro, ele deverá informar e sair do script.

Do jeito que está agora, não me diz se um dos argumentos não é um número inteiro, apenas o ignora. Então, dando os argumentos 123 123 123 asdt, recebo o seguinte:

vagrant@localhost vagrant]$./super.sh 123 123 123 asdt
TOTAL : 0
TOTAL : 123
TOTAL : 246
TOTAL : 369
Everything accounted to 369
[07:43----------------------------------------
vagrant@localhost vagrant]$

Mas se eu mudar para isso:

for (( a=0; a<x; ++a)); do
   if [ $1 -eq $1 ] 2> /dev/null
   then

Funciona e eu recebo isso:

vagrant@localhost vagrant]$./super.sh 123 123 123 asdt
The argument asdt is NOT an integer. Aborting this
[07:44----------------------------------------
vagrant@localhost vagrant]$

Por que isso acontece?

bash test
  • 1 respostas
  • 111 Views
Martin Hope
iamAguest
Asked: 2018-08-23 00:21:02 +0800 CST

Erro de sintaxe ao chamar uma função

  • 2

Então tentei fazer uma função em um script que cria uma nova variável para cada argumento ao executar o script. Este é o meu código:

#!/bin/bash

# Creating function log
#ARG1=${1}

log() {
  echo "You called DA LOG FUNCTION!!!1!!11one111!"
}

log

#echo "${1}"
#echo "$ARG1"

fcta() {
  for ((x=0;x<1000;++x)); do
   "a$x"=${1}
   if [[ ${#} -gt 1 ]]; then
     shift
   else
     x=1001
   fi
  echo "${a$x}"
#  echo "${1}"
}

fcta $@

Eu entendi isso:

vagrant@localhost vagrant]$./luser-demo10.sh 12 12 12
You called DA LOG FUNCTION!!!1!!11one111!
./luser-demo10.sh: line 25: syntax error near unexpected token `}'
./luser-demo10.sh: line 25: `}'
[04:11----------------------------------------
vagrant@localhost vagrant]$

Então esta é a linha 25

#  echo "${1}"
} <----- LINE 25

fcta $@

EDIT: Obrigado por me contar sobre o "concluído" ausente. As pessoas perguntaram o que eu estava tentando fazer, bem, eu fiz outra pergunta para isso, já que esta foi respondida (a pergunta era: por que recebi um erro de sintaxe). Obrigado novamente.

bash function
  • 2 respostas
  • 1474 Views
Martin Hope
iamAguest
Asked: 2018-08-21 05:47:33 +0800 CST

wc -c me dá uma contagem extra de caracteres

  • 4

Então fiz um script que adiciona usuários ao sistema e queria forçar o comprimento dos nomes de usuário para 8 caracteres ou menos.

#!/bin/bash
# Only works if you're root

for ((a=1;a>0;a)); do
 if [[ "$UID" -eq 0 ]]; then
  echo "Quit this shit anytime by pressing CTRL + C"
  read -p 'Enter one usernames: ' USERNAME
  nrchar=$(echo ${USERNAME} | wc -c)
  echo $nrchar
  spcount=$(echo ${USERNAME} | tr -cd ' ' | wc -c)
  echo $spcount
  if [[ "${nrchar}" -ge 8 ]]; then
    echo "You may not have more than 8 characters in the username"
   elif [[ "${spcount}" -gt 0 ]]; then
    echo "The username may NOT contain any spaces"
   else
     read -p 'Enter one names of user: ' COMMENT
     read -s -p 'Enter one passwords of user: ' PASSWORD
     useradd -c "${COMMENT}" -m ${USERNAME}
     echo ${PASSWORD} | passwd --stdin ${USERNAME}
     passwd -e ${USERNAME}
   fi
 echo "------------------------------------------------------"
 else
  echo "You're not root, so GTFO!"
  a=0
 fi
done

Esse é o script completo, mas acho que o problema está apenas aqui em algum lugar:

  read -p 'Enter one usernames: ' USERNAME
  nrchar=$(echo ${USERNAME} | wc -c)
  echo $nrchar

Portanto, o problema com isso é que, sempre que eu insiro um nome de usuário de 8 caracteres, a variável nrchar parece sempre adicionar mais um caractere a ele, assim:

[vagrant@localhost vagrant]$ sudo ./exercise2-stuffs.sh
Quit this shit anytime by pressing CTRL + C
Enter one usernames: userdoi1
9
0
You may not have more than 8 characters in the username
------------------------------------------------------
Quit this shit anytime by pressing CTRL + C
Enter one usernames: ^C
[vagrant@localhost vagrant]$ 

Mesmo se eu deixar em branco, ele ainda conta um caractere:

[vagrant@localhost vagrant]$ sudo !.
sudo ./exercise2-stuffs.sh
Quit this shit anytime by pressing CTRL + C
Enter one usernames:
1
0
Enter one names of user:

Como identificar este problema?

bash shell
  • 2 respostas
  • 4330 Views
Martin Hope
iamAguest
Asked: 2018-08-17 23:32:13 +0800 CST

rsyslog apenas criando arquivos de log em /var/logs

  • 1

Executando o centos 7, meu rsyslog.conf fica assim:

 59 # Log all the mail messages in one place.
 60 mail.* /var/log/maillog
 61 mail.* /var/log/logtest1
 62 mail.* /root/logtest

Então eu uso o comando logger assim:

logger -p mail.err "this is one logsdsdfgsdfgdfsg"

Agora isso está escrito no /var/log/mailloge /var/log/logtest1, mas não está escrito no /root/logtest.

Eu também corri systemctl restart rsysloge também reiniciei meu sistema várias vezes.

Isso é intencional ou é um bug? De qualquer forma, como eu o forçaria a gravar meus logs onde eu quisesse?

linux centos
  • 1 respostas
  • 279 Views
Martin Hope
iamAguest
Asked: 2018-08-08 05:53:23 +0800 CST

O que estou fazendo de errado aqui (problema com loops)

  • 0

Essa coisa aqui

n=0
x=1
while [ $n -lt 6 ]
do
         n=$(( n+1 ))
         echo "sasadgsad gsda $n" >> /home/test/rptest

if [ $n -eq 5 ]
   then
      while [ $x -le 5 ]
      do
         echo "end of line$x" >> /home/test/rptest
         x=$(( x+1 ))
      done
 fi
done

Saída essa coisa

sasadgsad gsda 1
sasadgsad gsda 2
sasadgsad gsda 3
sasadgsad gsda 4
sasadgsad gsda 5
end of line1
end of line2
end of line3
end of line4
end of line5
sasadgsad gsda 6

Essa 11ª linha não deveria estar lá... A primeira coisa enquanto não deveria terminar quando n = 5? Por que ele cria essa última linha?

Obrigado pela ajuda :)

Eu até tentei com n=1 e while [ $n -le 5 ]

linux shell-script
  • 1 respostas
  • 50 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