Pular para o conteúdo

Comando funciona no bash mas nao no shell_exec no php7 [RESOLVIDO]

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. Comando funciona no bash mas nao no shell_exec no php7 [RESOLVIDO]

Enviado em 26/07/2021 - 22:41h

Boa noite a todos do vol. Estou com esse comando que funciona normalmente no bash do debian10, porém, no comando shell_exec dentro do php7 nao funciona.
Agradeço desde ja a ajuda.
Segue o comando dentro do exec:

shell_exec(awk 'NR>20 && /usuario/{c++;if(c=1) cmd="sed -i \""NR",+9d;\" texto.txt";system(cmd);exit}' texto.txt)


Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. Re: Comando funciona no bash mas nao no shell_exec no php7

Melhor resposta

Enviado em 29/07/2021 - 02:19h

jorgessn escreveu:

Buckminster, assim funciona no bash direto nele, mas no php nao. Isso ai é uma maldição, rs. Ele apaga tudo antes da linha 65.
$comando = `awk 'NR>65 && /$userDelete/{c++;if(c=1) cmd="sed -i \""NR",+9d;\" /etc/samba/smb.conf";system(cmd);exit}' /etc/samba/smb.conf`;


Bom, então o problema é algum caractere de escape ou alguma aspa.
O que eu posso dizer, além de que teu Debian está possuído pelo demônio, é que agora é na tentativa e erro, mas tu que tem acesso ao fonte todo vai tentando.
Tenta assim:
$comando = `awk '\""NR">65 && /$userDelete/\"{c++;if(c=1) cmd="sed -i \""NR",+9d;\" /etc/samba/smb.conf";system(cmd);exit}' /etc/samba/smb.conf`;

3. Re: Comando funciona no bash mas nao no shell_exec no php7 [RESOLVIDO]

Melhor resposta

Enviado em 29/07/2021 - 02:31h


jorgessn escreveu:

$comando = `awk 'NR>65 && /$userDelete/{c++;if(c=1) cmd="sed -i \""NR",+9d;\" /etc/samba/smb.conf";system(cmd);exit}' /etc/samba/smb.conf`;

Sem aspas na var
adminq@Q4OS:$ [02:04:20] └─»
saida=`awk 'NR>10 && /$var/{c++;if(c=1) cmd="sed \""NR",+9!d;\" texto.txt";system(cmd);exit}' texto.txt` 

adminq@Q4OS:$ [02:04:38] └─» echo "$saida"
NADA NA SAIDA!

Com Aspas na var
adminq@Q4OS:$ [02:04:48] └─»
 saida=`awk 'NR>10 && /'$var'/{c++;if(c=1) cmd="sed \""NR",+5!d;\" texto.txt";system(cmd);exit}' texto.txt` 

adminq@Q4OS:$ [02:05:00] └─» echo "$saida"
/media/adminq/persistence/ALL/BACKUP/HISTORICO/
/media/adminq/persistence/ALL/BACKUP/HTML/
/media/adminq/persistence/ALL/BACKUP/images/
/media/adminq/persistence/ALL/BACKUP/INSTALL_SCRIPTS/
/media/adminq/persistence/ALL/BACKUP/KLM/

______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________

5. Comando funciona no bash mas nao no php7

Enviado em 29/07/2021 - 00:30h


Boa noite comunidade, obrigado pela ajuda Buckminster, eu segui o site e mudei o comando mas mesmo assim nao respeita a condição de NR>65. Obrigado pela ajuda, segue o comando como ficou:

$comando=`awk 'NR>65 && /$userDelete/{c++;if(c=1) cmd=sed -i \NR,+9d;\ /etc/samba/smb.conf;system(cmd);exit}' /etc/samba/smb.conf`;

6. Re: Comando funciona no bash mas nao no shell_exec no php7 [RESOLVIDO]

Enviado em 29/07/2021 - 01:14h

Vê se dá certo assim:
$comando = `awk 'NR>65 && /$userDelete/{c++;if(c=1) cmd="sed -i \""NR",+9d;\" /etc/samba/smb.conf";system(cmd);exit}' /etc/samba/smb.conf`;

7. Comando funciona no bash mas nao no shell_exec no php7

Enviado em 29/07/2021 - 01:43h

Buckminster, assim funciona no bash direto nele, mas no php nao. Isso ai é uma maldição, rs. Ele apaga tudo antes da linha 65.
$comando = `awk 'NR>65 && /$userDelete/{c++;if(c=1) cmd="sed -i \""NR",+9d;\" /etc/samba/smb.conf";system(cmd);exit}' /etc/samba/smb.conf`;

8. Comando funciona no bash mas nao no shell_exec no php7

Enviado em 30/07/2021 - 01:50h


Buckminster, voce é uma onda viu kkkkkkkkkkk aqui até uma horas rapaz!. Obrigado pela ajuda! Seu codigo funciona tb igual ao do Oliver, mas continua não respeitando a condição NR>65 e apaga tudo nas linhas anteriores. Tentei com e sem as aspas.
$comando =`awk '\""NR">65 && /'$userDelete'/\"{c++;if(c=1) cmd="sed -i \""NR",+9d;\" /etc/samba/smb.conf";system(cmd);exit}'`;

MSOLIVER, obrigado pela dica! Mesmo assim com as aspas na variavel ele continua sem respeitar o NR>65 e apaga as linhas menores que 65.



9. Resolvido

Enviado em 30/07/2021 - 03:32h



Amigos, Buckminster, Oliver, peço desculpas, tinha um laco anterior anulando o comando de voces, agora funcionou, desculpem a perda de tempo por essa falta de atenção, obrigado a todos, de verdade, muito obrigado!

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder