Estou precisando de um auxilio referente a Shell Script, comecei a estudar recentemente essa ferramenta, e já estou aplicando no meu servidor.
Estou criando um script que irá realizar a instalação de um CMS em um servidor de hospedagem compartilhada, por se tratar de muitos passos, gostaria de automatizar, em favor da otimização de tempo.
Eu encontrei duas dificuldades, e espero que possam me ajudar.
1 - Eu preciso editar a linha número 954 de um arquivo de texto
Nome do arquivo: php.ini
Realizei alguns testes com o sed e utilizando o comando "s" para subistituir, mas por conta da própria linha contem "/" (barra) eu creio que anulou o comando, tentei escapar as barras com barras invertida "\", porém também não tive sucesso.
Preciso que a linha original seja substituida por: session.save_path = "/home/userftp/tmp"
"UserFTP" - Se refere a usuário FTP, então pode ser que tenha números também. Se tiver alguma flag genérica que aceite os dois.
Linha original: session.save_path = "/var/lib/php/session"
Tentei trocar as palavrás também, porém ele não altera depois de "/lib/"
Também testei excluir a linha 954 e printar o conteúdo completo, mas creio que a / atrapalhou novamente.
2 - No meio desse script eu preciso criar um vi (arquivo de texto) com esse conteúdo:
# BEGIN WordPress
# As diretrizes (linhas) entre `BEGIN WordPress` e` END WordPress` são
# geradas dinamicamente e só devem ser modificadas através de filtros do WordPress.
# Quaisquer alterações nas diretivas entre esses marcadores serão sobrescritas.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /site/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /site/index.php [L]
</IfModule>
# END WordPress"
OBS: Todo conteúdo dentro das aspas.
O nome do arquivo gerado tem que ser: .htaccess
Estou num numa Plataforma: CentOS 5.11 - 64 bits
#!/bin/bash
# Limpa a tela
clear
echo " ================================================================== "
echo " A Robotagora está instalando o WordPress para você. "
echo " ================================================================== "
# Doownload wordpress
curl -SO https://br.wordpress.org/latest-pt_BR.zip
# Descompacte wordpress
unzip latest-pt_BR.zip
# Acessar diretório para wordpress
cd wordpress
# Mover tudo do diretório atual para o diretório anterior
mv * ..
# Voltar ao diretório raiz
cd ..
# Ajustar arquivo de conexão com o banco de dados com sed - find and replace
sed -i 's/nome_do_banco_de_dados_aqui/namebase/' wp-config-sample.php
sed -i 's/nome_de_usuario_aqui/userbase/' wp-config-sample.php
sed -i 's/senha_aqui/pwdbase/' wp-config-sample.php
sed -i 's/localhost/hostbase/' wp-config-sample.php
# Voltar ao diretório raiz
cd
# Renomeando php.ini
mv php.ini php.ini-old
# Copiando php.ini do Servidor
cp /etc/php.ini .
# Ajustando as diretivas do php.ini com sed - find and replace
sed -i 's/max_execution_time = 30/max_execution_time = 90/' php.ini
sed -i 's/max_input_time = 60/max_input_time = 90/' php.ini
sed -i 's/memory_limit = 32M/memory_limit = 512M/' php.ini
sed -i 's/post_max_size = 8M/post_max_size = 50M/' php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/' php.ini
# Ajustando diretivas do session com sed - find and replace
sed -i '954d' php.ini
sed -i '/var/ s/var/home/' php.ini
sed -i '/lib/ s/lib/UserFTP/' php.ini
sed -i '/php/ s/php/^$' php.ini
sed -i '/session/ s/session/tmp/954' php.ini
sed -i '/var/ s/var/home/' php.ini
# Removendo arquivos desnecessários
echo " Realizando a Limpando ... "
# Remover diretório vazio "wordpress"
rmdir public_html/wordpress
# Remover arquivo zip
rm public_html/latest-pt_BR.zip
# Remover script bash
rm wp.sh
echo " ========================= "
echo "A instalação está concluída. "
echo " ========================= "