Quero fazer um backup do arquivo "/etc/nginx/nginx.conf"
E então edite-o para a seguinte linha no arquivo:
include /etc/nginx/sites-enabled/*;
Em vez disso, aparecerá como...
include /etc/nginx/sites-enabled/*;
server {
listen 8081;
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_redirect default;
auth_basic "Server Administration";
auth_basic_user_file /etc/nginx/passwords;
}
}
Meu problema é que ainda sou muito novo no Linux e pensei que poderia usar o sed, mas meu novo entendimento é que ele lê linha por linha e, portanto, não é bom para conteúdo multilinha. Não tenho certeza de como fazer o Perl funcionar com ele, pois alguns dos caracteres interfeririam no Perl. Meu cérebro está meio frito só de aprender como o NGINX funciona como é... qualquer ajuda é muito apreciada.
Meu comando SED atual....
Deve funcionar bem. Yay! :D
sudo sed -i.bak 's/^ include \/etc\/nginx\/sites-enabled\/\*\;$/&\n \n server {\n listen 8081\;\n \n location \/ {\n proxy_pass http:\/\/127.0.0.1:8080\/\;\n proxy_redirect default\;\n auth_basic "Server Administration"\;\n auth_basic_user_file \/etc\/nginx\/passwords\;\n }\n}\n/' /home/pi/Public/NGINX-test/nginx.conf
Responder1
sed
pode converter uma única linha em várias linhas.
Dê uma olhada no exemplo de script de "prova de conceito" abaixo. Ele gera o documento "aqui documento" convertido.
#!/bin/sh
sed 's/^include \/etc\/nginx\/sites-enabled\/\*;$/&\nYES!/' <<END
input-line:1
include /etc/nginx/sites-enabled/*;
input-line:3
include /etc/nginx/sites-enabled/*;
END
Responder2
Além das informações fornecidas por Andrzej A. Flip, você precisa escapar dos caracteres de ponto e vírgula (;), asterisco (*) e barra (/). O \n cria uma nova linha e usa -i.bak para fazer um backup do arquivo antes de fazer a alteração com uma extensão .bak.
sudo sed -i.bak 's/^ include \/etc\/nginx\/sites-enabled\/\*\;$/&\n \n server {\n listen 8081\;\n \n location \/ {\n proxy_pass http:\/\/127.0.0.1:8080\/\;\n proxy_redirect default\;\n auth_basic "Server Administration"\;\n auth_basic_user_file \/etc\/nginx\/passwords\;\n }\n}\n/' /home/pi/Public/NGINX-test/nginx.conf