Quiero hacer una copia de seguridad del archivo "/etc/nginx/nginx.conf"
Y luego edítelo para que aparezca la siguiente línea en el archivo:
include /etc/nginx/sites-enabled/*;
En su lugar 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;
}
}
Mi problema es que todavía soy muy nuevo en Linux y pensé que podría usar sed, pero mi nueva comprensión es que lee línea por línea y, por lo tanto, no es bueno para contenido de varias líneas. No estoy seguro de cómo hacer que Perl funcione con él, ya que algunos de los caracteres interferirían con Perl. Mi cerebro está un poco frito con solo aprender cómo funciona NGINX tal como está... cualquier ayuda es muy apreciada.
Mi comando SED actual....
Debería funcionar bien. ¡Hurra! :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
Respuesta1
sed
Puede convertir una sola línea en varias líneas.
Eche un vistazo al script de muestra de "prueba de concepto" que aparece a continuación. Genera un documento convertido "aquí doc".
#!/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
Respuesta2
Además de la información proporcionada por Andrzej A. Flip, es necesario omitir los caracteres de punto y coma (;), asterisco (*) y barra diagonal (/). \n lo convierte en una nueva línea y usa -i.bak para hacer una copia de seguridad del archivo antes de realizar el cambio con una extensión .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