FLUX RSS

  • YouTube
  • LinkedIn
  • Google

Archives pour : December2015

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.

Un de mes filtres ne étaient pas sauf les plusieurs tentatives pour s'authentifier sur un mes services même si il faisait beau. J'ai décidé d'augmenter le Findtime commune de configuration et il commencent à se répandre.

Il était donc temps de comprendre pourquoi avec un findtime en bas il n'a pas pu se propager. J'ai commencé à vérifier en détail les réglages et j'ai réalisé que même si le calendrier officiel de Brasilia, j'ai changé le temps pour mon fuseau horaire, les journaux ont continué d'afficher le calendrier au format UTC. Soupçonne qu'il pourrait être présent et a décidé de modifier le calendrier qui se trouve dans les journaux (/var/log/messages).

Bingo!

Après le changement et confirmer que les journaux utilisaient le même calendrier que le signalés dans

Date 

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

Suivez la recette pour changer l'horaire.

Informations de fuseau horaire sont conservés /etc/localtime et si il n’est pas sur ce que vous voulez lui remplace simplement pour ce qu’il veut et qui est présent dans /usr/share/zoneinfo /. Dans mon cas, comme je voudrais le calendrier de Brasília, J’ai utilisé /usr/share/zoneinfo/America/Sao_Paulo.

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

Maintenant essayez à l'aide de la commande date et vérifier que la sortie doit être quelque chose comme:

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

Même après ces changements, les journaux continueront d'avoir le temps de la manière démodée. Pour changer cette éditer le fichier/etc/sysconfig/horloge et ajouter les lignes suivantes pour refléter votre fuseau horaire.

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

Dans mon cas, J'ai dû redémarrer le serveur pour que les modifications à l'effet de surtissem mais juste redémarrer le service rsyslog déjà résoudre.

# Redémarrage du service rsyslog

Jusqu'à la prochaine.

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 et j'ai réalisé que les horaires étaient tous en UTC .
Comme je devais envoyer partie des journaux à une tierce partie qui fait utiliser et n'êtes pas familier avec les systèmes, pourrait finir par se déroulant quelques malentendus. J'ai décidé alors qui devrait conserver les journaux de toutes les applications sur brésilien fuseau horaire.
Selon la documentation de pure-ftp il utilise des variables d'environnement pour déterminer qui sera le calendrier inclus dans les journaux

Continuer la lecture >>