FLUX RSS

  • YouTube
  • LinkedIn
  • Google

Archives pour : dezembro2015

Nommage des fichiers à l'aide de la liste de 0 à Z

Aujourd'hui j'ai était codage certains scripts et trouvé un peu de mal à utiliser un modèle défini.

Le modèle consiste à créer des fichiers où la séquence commence dans 0 (zéro) et ne peut être répété jusqu'à Z.

Exemple de:

myfile0.ext, myfile1.ext, myfile2.ext, (...), myfile9.ext, myfileA.ext, myfileB.txt, (...), myfileZ.txt

Eh bien, ce n'est pas un gros problème, alors j'ai utilisé ce code.

// Filename
$seq = $last_used_seq = '';
$seqs = array_merge(range('0','9'), range('A', 'Z'));]
$l = 1;
while (!in_array($seq, $seqs)) {
    $seq = chr(ord($last_used_seq) + $l++);
}

Mais

$Seq

donné pas la valeur attendue de 0 (zéro) sur la première manche. Au lieu de cela, il était vide.

Les variables de débogage, J'ai vu que le while jamais la valeur true. Tenter de reproduire sur la ligne de commande, j’ai vu que

in_array($Seq, $seqs);

retourne toujours true. J'ai essayé d'utiliser “”, “R” et peu importe de quelle valeur, j'ai utilisé, encore de retour true.

Donc j’ai changer pour utiliser STRICT argument en faveur de in_array to true and works for ‘;A’; through ‘;Z’;, but not for ‘;0; through ‘;9;.

while (!in_array($seq, $seqs, true)) {
    $seq = chr(ord($last_used_seq) + $l++);
}

Damn…; PHP est juste, ;0; n'est pas strictement égal à 0. Le Chr retour de fonction string et

gamme(« 0 », « 9 »)

crée un array avec integer valeurs.

Alors, J'ai changé l'approche pour évaluer toutes les valeurs par STRICT, parce que je voudrais créer un code sympa et propre, sans aucune autre fonction à utiliser.

This is the final code that I’;à l’aide de m:

// Valeurs $seq initiales = '';
$seqs = array_merge(gamme(ORD(« 0 »),ORD(« 9 »)), gamme(ORD(« A »), ORD(« Z »)));
$seqs = array_map(« chr », $seqs);
$l = 1;
tout en (!in_array($Seq, $seqs, true)) {
    $Seq = chr(ORD($infos[« last_seq »]) + $l ++);
}

// Noms de fichier foreach ($itens_for_files as $key =>; $itens) {
    // ... Un autre codes pour remplir le fichier $seq = chr(ORD($Seq) + 1);
    tout en (!in_array($Seq, $seqs, true)) {
    $Seq = chr(ORD($Seq) + 1);
    $filename = « myfile » . $Seq . « .ext »;
    // ...
}

Comment vous pouvez voir, J'ai changé le $seqs initial values from ‘;0; à votre ASCII code et revenir à votre valeur qui m'a donné un array avec toutes les valeurs de string type de.

A la prochaine!

Erreur de comparaison PHP

Aujourd'hui, J'ai écrit un script en PHP pour être utilisé dans la ligne de commande lorsque je suis tombé sur un comportement inattendu (au moins de ma part).
Le script devrait recevoir trois arguments, le dernier d'entre eux une liste contenant un ou plusieurs codes numériques.
Essayant de valider ce dernier argument a été d'obtenir un résultat différent qu'imaginé.
Voir l'extrait de code que j'utilisais:

// test.php si (php_sapi_name() == « cli ») {
    $di = isset($argv[1]) ? $argv[1] : Date("Y-m-d"); // Première Date $df = isset($argv[2]) ? $argv[2] : Date("Y-m-d"); // Date limite $prods = isset($argv[3]) ? exploser(',', $argv[3]) : Tableau(); // Liste de codes

    ##### Validation de
    // Première Date si ($di != date("Y-m-d", strtotime($di))) {
        ECHO "\n";
        ECHO "ERREUR! DATE initiale non valide!\n";
        sortie;
    }
    // Date limite si ($DF != date("Y-m-d", strtotime($DF))) {
        ECHO "\n";
        ECHO "ERRO! DATE finale non valide!\n";
        sortie;    
    }

    // Si des codes (comte($prods) >; 0) {
        foreach ($prods comme $prod) {
            If ($prod != (int)$prod) {
                ECHO "\n";
                ECHO "ERREUR! Le CODE " . $prod . " n'est pas valide!\n" ;
                sortie;
            }
        }
    }
    ECHO "FAIT!";
}

Continuer la lecture >>

Comment fixer la date et l'heure sur Centos 6. X pour votre fuseau horaire dans les journaux

Aujourd'hui je suis tombé sur un problème lorsque vous utilisez le Fail2ban qui m’aide à garder le serveur en l’air même sous les attaques de force brute.

Um dos meus filtros não estavam barrando as diversas tentativas de autenticação em um dos meus serviços embora estivesse tudo certo. J'ai décidé d'augmenter le Findtime na configuração comum e ele começou a barrar.

Então era hora de entender porque com um findtime baixo ele não conseguia barrar. Comecei a checar detalhadamente as configurações e percebi que mesmo tendo alterado a hora para meu timezone para o horario oficial de Brasilia, les journaux ont continué d'afficher le calendrier au format UTC. Desconfiei que pudesse ser isso e resolvi alterar o horário que é colocado nos logs (/var/log/messages).

Bingo!

Após a alteração e confirmar que os logs estavam usando o mesmo horario que o reportado em

Date 

changé le findtime aux valeurs qui voulaient et tout a fonctionné comme prévu.

Suivez la recette pour changer l'horaire.

As informações de Timezone ficam no arquivo /etc/localtime e caso ele não esteja no que você quer basta substitui-lo pelo que deseja e que esteja presente em /usr/share/zoneinfo /. Dans mon cas, como queria o horario de Brasília, J’ai utilisé /usr/share/zoneinfo/America/Sao_Paulo.

# LN-sf/usr/share/zoneinfo/America/Sao_Paulo/etc/localtime

Agora é só testar usando o comando date e verificar a saída que deverá ser algo como:

# jour Wed Dec 9 15:55:58 Suis BRST 2015

Mesmo após essas mudanças, os logs continuarão a terem o horário da forma antiga. Para alterar isso edite o arquivo /etc/sysconfig/clock e adicione as linhas abaixo para refletir também o seu timezone.

ZONE ="America/Sao_Paulo"
UTC = faux ARC = false

Dans mon cas, precisei reiniciar o servidor para que as alterações surtissem efeito mas pode ser que apenas reiniciando o serviço rsyslog já resolva.

# Redémarrage du service rsyslog

Até a próxima.

Comment corriger l'erreur LOCALE sur Linux Debian/Ubuntu

Aujourd'hui, j'ai eu à regarder les logs vers un serveur FTP sous lequel s'exécute le pure-ftp e percebi que os horários estavam todos em UTC .
Como eu precisava enviar parte dos logs a um terceiro que faz uso dele e não está familiarizado com sistemas, pourrait finir par se déroulant quelques malentendus. Resolvi então que deveria manter os logs de todas as aplicações no fuso horário brasileiro.
De acordo com a documentação do pure-ftp ele utiliza as variáveis de ambiente para determinar qual será o horário incluído nos logs

Continuer la lecture >>