Pra sair de um foreach (ou while) só usar break
Exemplo:
for($i=1; $i<=10; $i++){ if($i > 5) break; echo $i."<br>"; }
Desenvolvimento Web, Administração Linux e Curiosidades
Pra sair de um foreach (ou while) só usar break
Exemplo:
for($i=1; $i<=10; $i++){ if($i > 5) break; echo $i."<br>"; }
Tenho um script que automatiza os commits/pulls em um repositorio git que, na realidade não utilizo para versionamento, e sim para controlar quando alguem faz modificações não autorizadas com possibilidade de rollback.
Em um determinado momento o script parava no pull (custei a perceber isso) o que acontecia por causa da necessidade de merge.
Assim, para forçar um overwrite de arquivos locais (merge bypass) usamos o comando abaixo:
git reset --hard HEAD git pull
Agradecimentos ao meu colega jb que me passou o parametro para isto.
Cenário: Alguem aplicou chmod 777 recursivo no /etc de um servidor web, alguns clientes tem conta de ssh limitadas, mas com esse nível de permissão qualquer um poderia ler/modificar configurações do servidor.
A contagem de arquivos no /etc é de aproximadamente 2600 arquivos, o que tornaria aplicar chmod manualmente em cada uma delas.
Por sorte esse servidor seria uma maquina virtual, onde outras provem do mesmo template. Entretanto coo /etc de um para outro não é uma opção, poiso template de origem foi o mesmo, mas as configs são diferentes em cada um
Neste caso a solução foi simples, copiei o /etc de um servidor para dentro do /root deste com problema, no caso fiquei com /etc/ e /root/etc/. OBS: gzipiei e copiei, pra manter as permissões.
Usei a flag –reference do chmod pra copiar somente as permissões.
Comando executado:
for i in `/usr/bin/find /etc/`; do /bin/chmod --reference=/root$i $i; done
explicando em miúdos:
executei um find no /etc/ para obter todos os arquivos, usando um for para varrer cada linha e executando chmod em arquivo por arquivo do /etc baseado nas permissões existentes em /root/etc/
Util em shell scripts:
valid=1 [ $valid ] && x=1 || x=0
Mesmo código em php (para compreensão)
$valid = True; $x = ($valid) ? 1 : 0;
Quando aparecer esse erro logado como sysdba
gbak: ERROR:Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
gbak:Exiting before completion due to errors
Resolvi setando uma nova senha pro sysdba com o gsec
[10:50:51 root@localhost ~]# gsec GSEC> modify SYSDBA -pw n0v4s3nh4