bash, script seqdate

2018-10-17 | #commande #date #seq

Script réutilisable pour générer des dates avec date et seq #!/bin/bash usage() { local msg="$1" if [[ -n "$msg" ]]; then echo $msg fi echo "usage: $0 <FROM=YYYY-MM-DD> <TO=YYYY-MM-DD>" >&2 exit 1 } if [[ "$#" -ne 2 ]]; then usage fi FORMAT="%Y-%m-%d" FROM=$(date --d "$1" +"$FORMAT") TO=$(date --d "$2" +"$FORMAT") if [[ "$FROM" > "$TO" ]]; then read FROM TO <<< "$TO $FROM" fi echo $FROM while [[ "$FROM" !

Continuer la lecture 


bash, générer des dates avec les commandes seq et date

2018-10-16 | #commande #date #seq

Parfois il peut être utile d’avoir une liste de dates pour appeler un script particulier. Cette liste peut être générée à partir des commandes seq et date comme dans l’exemple ci-dessous. $ for i in $(seq 0 5); do date -d "20180705 $i day" +'%Y%m%d'; done 20180705 20180706 20180707 20180708 20180709 20180710 $ for i in $(seq 0 5); do date -d "20180705 $i day ago" +'%Y%m%d'; done 20180705 20180704 20180703 20180702 20180701 20180630

Continuer la lecture 


bash, select

2018-07-27 | #bash #commande #select

Je viens de m’apercevoir que je n’ai jamais parlé de la commande select sous bash. Celle-ci est très pratique car elle permet de faire un choix en précisant un numéro et non sa valeur. Exemple d’utilisation ci-dessous : $ select n in item1 item2 item3 item4 item5; do if [[ -n "$n" ]]; then echo "You choose: $n"; break; else echo "Invalid choice"; fi; done 1) item1 2) item2 3) item3 4) item4 5) item5 #?

Continuer la lecture 


http, headers sur la gestion du cache et de la sécurité

2018-07-26 | #cache #html #http #securité

public static void addNoCacheHeaders(HttpServletResponse resp) { resp.addHeader(HttpHeaders.CACHE_CONTROL, "max-age=0, no-store, no-cache, must-revalidate, proxy-revalidate, private"); resp.addHeader(HttpHeaders.PRAGMA, "no-cache"); resp.addHeader(HttpHeaders.EXPIRES, "-1"); } public static void addSecurityHeaders(HttpServletResponse resp) { resp.addHeader(HttpHeaders.X_FRAME_OPTIONS, "DENY"); resp.addHeader(HttpHeaders.X_XSS_PROTECTION, "1; mode=block"); resp.addHeader(HttpHeaders.X_CONTENT_TYPE_OPTIONS, "nosniff"); }

Continuer la lecture 


commande, history

2018-04-20 | #commande #history

Parfois, on ne sait plus si on a relancé une commande dans le terminal… Pour avoir un historique daté, voici une petite configuration à ajouter à son .bashrc export HISTTIMEFORMAT="%d/%m %H:%M " Désormais, l’appel à l’historique produit des lignes avec les informations jour/mois heure/minute $ history 492 19/04 16:15 cat ko | sed -e 's/.*(//' -e 's/ seconds.*//' -e 's/^[[:space:]]*$//;/^$/d' | awk '{SUM += $1} END {print "Total : "SUM}' 493 19/04 16:15 connect jenk

Continuer la lecture 


Java, convertir un fichier alaw en pcm

2017-11-24 | #conversion #java #wav

Dans un billet précédent, je parlais d’un petit player en html5 qui devait jouer des wav. Je convertissais les wav en mp3 pour la compatibilité des navigateurs. Lors de l’intégration de celui-ci dans l’IHM d’administration du serveur vocal, j’ai eu quelques soucis de conversion… La conversion en mp3 ne fonctionnait pas car les fichiers en entrée n’étaient pas des vrais “wav”… C’étaient des fichiers A-law ! ACCUEIL_CHOIX_TARIFS.wav: RIFF (little-endian) data, WAVE audio, ITU G.

Continuer la lecture 


Java, convertir des wav en mp3

2017-09-27 | #conversion #java #mp3 #wav

Je maintiens une IHM d’administration dans laquelle un petit player flash permet d’écouter des fichiers wav. Le passage au player html5 a été laborieux. Le player devait s’afficher dans une popup (on utilisait auparavant qtip mais le passage à html5 faisait planter le rendu aléatoirement) et un problème d’affichage du temps total du morceau était présent de temps à autre (cf solution dans billet précédent). Une fois la popup affichée et le problème de temps résolu, je me suis heurté à un autre problème de taille…

Continuer la lecture 


html5, player audio dans une popup

2017-09-27 | #html #player

Pour mon projet, je devais afficher un player audio HTML5 dans une popup lors d’un clic sur un span (fichier son)… Voici ce que cela donne sur un exemple allégé : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html > <head> <link rel="stylesheet" type="text/css" href="/css/ihmadm.css"/> <title>Player HTML5 popup</title> <script type="text/javascript" src="/js/app/lib/jquery/jquery-1.10.1.js"></script> <script type="text/javascript"> $(document).ready(function() { var playable = function(event, currentTarget) { var sound = $.trim(currentTarget.text()); $("body").append('<div id="divPlayer" style="display:none"><audio id="player" controls="controls"><source id="sourceAudio" src="">Your browser does not support the audio element.

Continuer la lecture 


ssh & scripts automatisés, The authenticity of host can't be established

2017-05-23 | #ssh

Lors d’appels de scripts automatisés pour “calculer” ce qui est à mettre en préproduction, j’ai souvent des “The authenticity of host can’t be established”. Peut-être parce que la machine est puppétisée… Soit il faut répondre manuellement, soit il faut éviter d’avoir le prompt… Pour éviter d’avoir à répondre, on peut ajouter l’option “-o StrictHostKeyChecking=no” à ses commandes SSH. $ ssh user@host.example.com Pseudo-terminal will not be allocated because stdin is not a terminal.

Continuer la lecture 