V
V
Viktor Taran2017-04-13 12:20:36
linux
Viktor Taran, 2017-04-13 12:20:36

Bash insert multiple lines in file after specific one?

It needs to be made as simple as possible.
1. We find a line in the file
" include bx/conf/ssl.conf;", comment it
and add a few more lines under it .
We don’t grind, we don’t paste it on any of the lines, but we add it to this place.
so far so far.

sed -i "s/ include bx\/conf\/ssl.conf\x3B/\ #include bx\/conf\/ssl.conf\x3B/g" /tmp/333/111.conf

It begs EOF
Yes, and then the domain name will be a change!
It is desirable that it be in the most readable form.
Accordingly, it remains to add these lines.
ssl_certificate /etc/letsencrypt/live/mfwo.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mfwo.ru/privkey.pem;
ssl on;
 keepalive_timeout 70;
 keepalive_requests 150;
 ssl_session_cache shared:SSL:10m;
 ssl_session_timeout 10m;

Answer the question

In order to leave comments, you need to log in

3 answer(s)
X
xibir, 2017-04-13
@shambler81

sed -i '\| include bx/conf/ssl.conf| { s| include bx/conf/ssl.conf|#&|; a\
ssl_certificate /etc/letsencrypt/live/mfwo.ru/fullchain.pem;\
ssl_certificate_key /etc/letsencrypt/live/mfwo.ru/privkey.pem;\
ssl on;\
 keepalive_timeout 70;\
 keepalive_requests 150;\
 ssl_session_cache shared:SSL:10m;\
 ssl_session_timeout 10m;
}' /tmp/test.conf

C
chupasaurus, 2017-04-13
@chupasaurus

man patch

V
Viktor Taran, 2017-04-13
@shambler81 Asker

Here is a skrikt who has ideas for optimization, I will say thank you.

#тут указываем совой домен

DOMAIN=mfwo.ru
[email protected]

#############################################################################################################
#ставим гит, если его нет
rpm -q git && echo "А гит уже стоит и мы его пропускаем" || yum install git
# в этой папке и будет лежать сам дистрибутивчик cetbot, он нам нужен будет потом для  обновления ключиков.
cd /root
#проверяем  не скачан ли он уже и качаем если нет.
test -d certbot && echo "Каталог уже есть, ниче не качаем" || git clone https://github.com/certbot/certbot
cd certbot

# Выставляем права  на файл
chmod a+x ./certbot-auto || echo "проблема  правами на файл" && echo "Права  на файл поменяли успешно"


# проверяем верен ли путь до сайта, и не сгенерирован ли уже ключик, если все ок генерим!
test -d /home/bitrix/ext_www/$DOMAIN  || echo "/home/bitrix/ext_www/$DOMAIN.ru -нет такой директории"  && test -f /etc/letsencrypt/live/$DOMAIN/fullchain.pem && echo "А файл уже есть, не не генерируем новый !" || 
./certbot-auto certonly --webroot --agree-tos --email $EMAIL -w /home/bitrix/ext_www/$DOMAIN -d $DOMAIN -d www.$DOMAIN || echo "А не угадали с каталогом, проверяем пути" &&


# коментит "include bx/conf/ssl.conf/ssl.conf;"  и добавляет строки
# ssl_certificate /etc/letsencrypt/live/$DOMAIN/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/$DOMAIN/privkey.pem;
# ssl on;
# keepalive_timeout 70;
# keepalive_requests 150;
# ssl_session_cache shared:SSL:10m;
# ssl_session_timeout 10m;
sed -i "s/ include bx\/conf\/ssl.conf\x3B/\ #include bx\/conf\/ssl.conf\x3B\n  ssl_certificate \/etc\/letsencrypt\/live\/$DOMAIN\/fullchain\.pem\x3B\n  ssl_certificate_key \/etc\/letsencrypt\/live\/$DOMAIN\/privkey\.pem\x3B\n  ssl on\x3B\n  keepalive_timeout 70\x3B\n  keepalive_requests 150\x3B\n  ssl_session_cache shared:SSL:10m\x3B\n  ssl_session_timeout 10m\x3B/g" /etc/nginx/bx/site_avaliable/bx_ext_ssl_$DOMAIN.conf && echo "замена  в конфигах прошал  без ошибок"

# перед рестартом  проверяем валидность конфигов, если ок рестартуем.

service nginx configtest && echo "Nginx  валидно завершил проверку конфигов" && service nginx restart 

#certbot-auto renew
#првоеряем нет ли записи в кроне и добавляем ее  
echo "Записываем Автообновление сертификатов  крон"
crontab -l | grep -q "\* \*/12 \* \* \*   cd /root/certbot/ \&\& \./certbot-auto renew >> /dev/null 2>\&1 "  && echo "А в кроне уже запись есть, ничего не добавляем" || echo "* */12 * * *   cd /root/certbot/ && ./certbot-auto renew >> /dev/null 2>&1 "  >> /var/spool/cron/root  

echo "не забывайте про редиректы которые могут вести на http!!!!!!!!"

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question