Eu tenho um shell em um sistema Unix.
Existe um comando que pode me dizer qual shell estou trabalhando? (bash, zsh, etc.)
Eu tenho um shell em um sistema Unix.
Existe um comando que pode me dizer qual shell estou trabalhando? (bash, zsh, etc.)
estou tentando fechar a porta com autenticação básica (para pushgateway do prometheus), então não sou um grande especialista em nginx, então alguém poderia me dar um conselho onde estou errado?
Eu tenho a porta 9091, que deve ser fechada por fora na frente do auth. Esta porta está sendo usada pelo pushgateway
Minha configuração atual do nginx:
events { }
http {
upstream prometheus {
server 127.0.0.1:9090;
keepalive 64;
}
upstream pushgateway {
server 127.0.0.1:9091;
keepalive 64;
}
server {
root /var/www/example;
listen 0.0.0.0:80;
server_name __;
location / {
auth_basic "Prometheus server authentication2";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://prometheus;
}
}
server {
root /var/www/example;
listen 0.0.0.0:3001;
server_name __;
location / {
auth_basic "Pushgateway server authentication";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://pushgateway;
}
}
}
Portanto, a autenticação básica funciona bem para :3001, mas 9091 ainda está aberto. Tentei mudar da seguinte forma:
server {
root /var/www/example;
listen 0.0.0.0:3001;
listen 0.0.0.0:9091;
server_name __;
location / {
auth_basic "Pushgateway server authentication";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://pushgateway;
}
}
E funciona bem, mas ... o pushgateway não pode começar tentando ouvir :9091 e jogando "bind:address já está em uso". Como posso evitá-lo e ocultar o pushgateway na frente do nginx?
Configuração do Pushgatewa:
ExecStart=/usr/local/bin/pushgateway --web.listen-address=":9091" --web.telemetry-path="/metrics" --persistence.file="/tmp/metric.store" --persistence.interval=5m --log.level="info" --log.format="logger:stdout?json=true"
Eu sou novo no tc e isso pode ser uma pergunta ingênua, mas me corrija se estiver errado
tc qdisc change dev eth0 root netem corrupt 5%
O comando acima corrompe apenas os pacotes de entrada?
Se sim, a corrupção de saída tem suporte com comando diferente para configurar?
PS: não consegui encontrar ajuda relevante online para corrupção de saída.
Eu tenho uma ferramenta de desenvolvimento local ( LocalWP ) que define o caminho para meu ambiente local modificando arquivos /etc/hosts
.
Por exemplo, se eu definir meu site em Local para www.foo.com
, ele anexará o seguinte ao arquivo hosts:
127.0.0.1 www.foo.com
Isso é bom, mas preciso excluir um subdiretório (não um subdomínio) neste domínio, para que ele resolva para outro IP (o original).
Claro, isso não é possível etc/hosts
porque é apenas um ponteiro DNS e não resolve nada, exceto o domínio. No entanto, estou querendo saber se há outra ferramenta que eu possa usar para excluir um subdiretório do hosts
arquivo atual e apontá-lo para um novo IP.
Gostaria de saber se algo como dnsmasq pode fazer isso ou se há outra ferramenta que eu possa usar para algum comportamento DNS condicional com base na resolução do caminho, em vez de apenas no domínio.
ssh user@host "umask"
dá 0174
ssh user@host
e o umask do shell do servidor fornece 0002
Por favor, poderia explicar como isso pode acontecer?
UPD: Na verdade, foi /etc/passwd substituindo umask.
Estou tentando implementar um orquestrador de trabalho cujos programas de agente/trabalhador se conectam a máquinas por meio de uma sessão/shell SSH. Gostaria de transferir arquivos (potencialmente binários) para esses agentes (que podem ser necessários para qualquer tipo de tarefa).
Obviamente, se as portas podem ser configuradas de alguma forma, então nc
e algumas instruções podem ser executadas. No entanto, estou tentando obter algo que funcione com a configuração mais restritiva.
Algo que costumo fazer ao trabalhar nesse tipo de configuração (manualmente) é serializar o arquivo em Base64 ou similar e "colar" os dados na sessão do console, algo como:
echo -n "BINARY_BASE64_DATA" | base64 --decode > file_destination.file
Gostaria de implementar algo assim para o agente/trabalhador que descrevo acima.
O cerne da questão é qual ferramenta usar para ter a maior superfície de compatibilidade. A maioria das máquinas Linux (mesmo as imagens básicas do Docker/Vagrant) parecem ter base64
instalado. No entanto, o FreeBSD não parece ter este comando pré-instalado. Eu sei que posso instalá-lo com pkg
ou Ports, mas gostaria de usar algo pronto para uso o máximo possível.
Procurei algo mais POSIX/Unix-y e encontrei isto: https://en.wikipedia.org/wiki/List_of_Unix_commands que diz:
Esta é uma lista de comandos Unix conforme especificado pelo IEEE Std 1003.1-2008, que faz parte do Single UNIX Specification (SUS). Esses comandos podem ser encontrados em sistemas operacionais Unix e na maioria dos sistemas operacionais do tipo Unix.
e tem uma longa tabela de comandos, dos quais seriam os relevantes uuencode
e uudecode
que estão ambos listados como "obrigatórios".
No FreeBSD, posso ver que ele é instalado de fábrica.
No meu desktop Ubuntu, ele também está presente, embora eu não saiba se saiu da caixa ou foi instalado como uma dependência de outra coisa que instalei. No entanto, dentro de uma caixa Ubuntu Vagrant ( generic/ubuntu2004
, especificamente), a invocação uuencode
mostra a seguinte mensagem:
$ uuencode
Command 'uuencode' not found, but can be installed with:
apt install sharutils
Please ask your administrator.
Em uma imagem do Docker baseada no Ubuntu 14.04, recebo:
# uuencode
bash: uuencode: command not found
uuencode
/ uudecode
pronto para uso em todas as situações? Isso o torna menos compatível com POSIX/Unix?base64
binário instalado para trabalhar com o orquestrador?O que o manipulador "proxy:unix:..." do Apache faz e onde ele está documentado? Eu vejo isso usado aqui e ali, como:
SetHandler "proxy:unix:..."
Por exemplo, nesta pergunta recente ou na documentação do SetHandler e do mod_fcgi .
Eu posso adivinhar que pode canalizar para um soquete Unix, mas e a sintaxe no exemplo mod_fcgi ? Onde está a documentação?
Eu quero que no meu servidor fox
o usuário possa ser/mudar de usuário e estar user42
de forma sem senha ( fox
usuário não tem senha eles logam com chaves SSH)::
srv6:/etc# grep user42 /etc/sudoers
fox ALL=(ALL:ALL) NOPASSWD: /bin/su user42
srv6:/etc#
Funciona bem se eles fizerem sudo su user42
:
fox@srv6:~$ sudo su user42
user42@akd6:/home/fox$
Mas se eu tentar ter um shell limpo com sudo su - user42
o NOPASSWD não funcionou
fox@srv6:~$ sudo su - akd
[sudo] password for fox:
Estou usando o AWS Linux 2 AMI Atualmente tenhoAWS EC2
Recentemente o mysql não funciona mais, mas funcionava antes.
quando eu tentei fazer isso
sudo service mysql start
ou
sudo service mysqld start
Diz service mysql
unidade não encontrada
Eu tentei também sudo service httpd start
e iniciar o mysql
mas ainda não funciona
Eu tentei também verificar o uso do disco do meu ec2
usando este comando:df
Isso me dá uma saída como esta
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 2000788 0 2000788 0% /dev
tmpfs 2018800 0 2018800 0% /dev/shm
tmpfs 2018800 480 2018320 1% /run
tmpfs 2018800 0 2018800 0% /sys/fs/cgroup
/dev/xvda1 8376300 5880760 2495540 71% /
tmpfs 403764 0 403764 0% /run/user/1000
Onde aqui /dev/xvdal tem 71%
armazenamento usado
Isso está mesmo relacionado por mysql
que não quer começar?
Eu estendo o disco em vmware
depois de fazer isso eu recebo a configuração mas como estender o pv /dev/sda1 em 30G para depois estender o vg?
Eu não quero estender a partição com o fdisk, eu só quero estender o pv stop e depois estender o vg e o lv depois.
o código continua, mas ele me diz que o grub não pode ser instalado erro grub-install incapaz de identificar um sistema de arquivos
eu quero isso: