Bash - verificar variáveis de ambiente

0

O comando env pode ser usado para imprimir variáveis de ambiente no bash. Eu quero perguntar se existe algum comando interno para fazer isso?

$ export temp="hello world"
$ env | grep temp

O segundo comando imprimirá, de fato, temp's value, mas isso é porque ele é herdado como ambiente quando env foi gerado. Eu quero verificar quais variáveis de ambiente o processo do shell bash tinha originalmente, em que temp ainda não seria parte do ambiente, mas apenas marcado para ser exportado como ambiente para qualquer filho (eu quero testar isso).

    
por Jake 13.08.2015 / 09:12

1 resposta

1

Você está certo, ao exportar ou declarar uma variável dentro de um shell, a variável é não adicionada ao ambiente do shell (no meio de atualizar o arquivo - leia abaixo).

Você pode visualizar as variáveis de ambiente do shell (ou qualquer outro processo) que tinha quando foi chamado, visualizando o arquivo /proc/PID/environ , em que PID é o PID do processo que você deseja analisar. As variáveis são salvas no formulário clássico var=value e são separadas por caractere nulo.

    
por 13.08.2015 / 20:52
Httpcess: Redirecionar um subdomínio para outro protocolo ______ qstntxt ___

Eu gostaria de criar uma regra para um subdomínio, então meu subdomínio de timespeak será redirecionado diretamente para o protocolo ts3.

Então, deixe-me mostrar um exemplo:

%pre%

Infelizmente, isso não está funcionando (resultando em um loop infinito).

Para ser honesto, não tenho experiência com o .htaccess. com o que isso deveria parecer? Tentei alguns outros exemplos, mas a maioria deles apenas reescrever em um diretório ou redirecionar para outro domínio, então eu estou com falta de exemplos ...

É possível fazer o que estou tentando?

    
______ azszpr222775 ___

O TL; DR %code% não foi feito para isso, e o TS3 não entenderia o tráfego HTTP do Apache (por vários motivos relacionados ao protocolo). A melhor solução é provavelmente fazer com %code% um alias para %code% (na configuração de DNS do seu domínio) e pedir a seus clientes que se conectem a %code% , onde %code% é sua porta de conexão Teamspeak.

%code% arquivos são usados pelo servidor web Apache. Faz parte de um sistema que lida com o tráfego HTTP. O Teamspeak 3 não entende o tráfego HTTP ... porque não é um servidor HTTP. Portanto, redirecionar o tráfego HTTP para o TS3 com um arquivo %code% (supondo que era o caminho certo para fazer isso) não faria muito sentido: o TS3 simplesmente descartaria os pedidos, já que não pode entender as solicitações HTTP.

O serviço Teamspeak está associado a uma porta, não a um endereço. Se você usar %code% , na verdade poderá encontrar essa porta. Eu não estou muito familiarizado com o Teamspeak, mas ouvi falar das portas 9987 e 10011 ... Você teria que verificar sua configuração do TS3 para isso:)

Se você quiser redirecionar tudo o que vem de %code% para %code% , recomendamos que você configure seu nome de domínio para funcionar dessa maneira. Faça %code% um alias para %code% e todas as solicitações enviadas para %code% chegarão a %code% . Esse tipo de configuração é normalmente tratado pelo seu servidor de nomes autoritativo e você deve ter acesso ao gerenciamento de zonas DNS para aplicar suas alterações.

Agora, redirecionar o tráfego all proveniente do %code% para a porta 9987 é mais complicado, e também é muito contraproducente. Teamspeak usa várias portas (consultas, dados de voz, transferências de arquivos ...): se você enviar tudo para 9987, talvez não receba consultas e transferências de arquivos, possivelmente tornando a conexão inicial impossível. Além disso, sua máquina não conseguirá distinguir o tráfego proveniente de %code% do que vem de %code% , já que o cliente o atingiu por IP após a resolução do nome.

Um servidor HTTP (ou talvez, proxy) poderia, de fato, fazer essa distinção usando o cabeçalho HTTP %code% , mas há tantos problemas relacionados a protocolos a serem tratados aqui:

  • O HTTP é baseado em conexões, o tráfego teria que ser transportado de TCP para UDP ( hello overhead! ).
  • O cabeçalho %code% teria que ser removido para que somente os dados binários do TS3 permaneçam. Misturar texto e dados binários é, obviamente, uma ideia terrível.
  • O proxy também precisaria ser capaz de distinguir dados de voz de transferências de arquivos e consultas TS3 ... e tenho certeza de que esse proxy não existe.
  • ...
___
Ubuntu One: Problema ao tentar se registrar