Chmod 755 sur les dossiers et 644 sur les fichiers

Posté le mar. 12 novembre 2013 • Tags : chmod, folder, file, linux

C'est toujours la galère lorsque l'on veut que tout soit propre au niveau des permissions des dossiers / fichiers.

Souvent la première chose que l'on fait : on va dans chaque dossier et on vérifie un a un ses fichiers et sous-dossiers. Quand il y a 1 ou 2 dossiers ça va mais quand on en a 40… on utilise une autre technique !

J'utilise pour les dossiers :

$ find \`pwd\` -type d -exec chmod 755 {} \\;

et pour les fichiers :

$ find \`pwd\` -type f -exec chmod 644 {} \\;

Avec `pwd` je vais partir du dossier actuel et remplacer tous les droits des fichiers et dossiers enfants. Vous pouvez remplacer par un autre chemin par exemple :

find /home/choiz/ -type d -exec chmod 755 {} \\;

find /home/choiz/ -type f -exec chmod 644 {} \\;

Icônes / Favicon / Apple-touch-icon

Posté le dim. 03 novembre 2013 • Tags : cli, imagemagick

Voici comment faire facilement sa favicon et ses icônes pour les appareils mobiles avec image magick.

Mon icône de base est en 512x512px au format png avec prise en charge de la transparence "icon512.png".

Je veux faire une favicon en 16x16px, 32x32px 48x48px et 64x64px le tout dans un seul fichier favicon.ico. :

convert icon512.png \
    -bordercolor white -border 0 \
    \( -clone 0 -resize 16x16 \) \
    \( -clone 0 -resize 32x32 \) \
    \( -clone 0 -resize 48x48 \) \
    \( -clone 0 -resize 64x64 \) \
    -delete 0 -alpha off favicon.ico

Ensuite je veux faire mes icônes pour les appareils mobiles : Android, Apple etc… :

convert icon512.png -resize x60 touch-icon-iphone.png
convert icon512.png -resize x76 touch-icon-ipad.png
convert icon512.png -resize x120 touch-icon-iphone-retina.png
convert icon512.png -resize x152 touch-icon-ipad-retina.png

Maintenant il faut ajouter dans notre page html entre les balises head :

<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
<link rel="apple-touch-icon-precomposed" href="touch-icon-iphone.png">
<link rel="apple-touch-icon-precomposed" sizes="76x76" href="touch-icon-ipad.png">
<link rel="apple-touch-icon-precomposed" sizes="120x120" href="touch-icon-iphone-retina.png">
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="touch-icon-ipad-retina.png">

A noter les appareils Android utilisent aussi les images "apple-touch-icon".


Installer jshint sur mac

Posté le lun. 14 octobre 2013 • Tags : npm

Installation via npm de jshint (-g pour installer pour tous les utilisateurs) : sudo npm install -g jshint

Faire un lien symbolique pour pouvoir utiliser directement jshint sans préciser tout le chemin a chaque fois :

ln -s /usr/local/share/npm/bin/jshint /usr/local/bin/jshint

Git se déplacer dans une branche distante

Posté le mar. 01 octobre 2013 • Tags : git

J'utilise des branches tel que prod, preprod pour mes projets et en local il m'arrive de vouloir aller sur ses branches :

git checkout preprod

Et j'ai l'erreur suivante :

error: pathspec 'preprod' did not match any file(s) known to git.

Je vais mettre a jour mon origin :

git fetch origin

Maintenant je veux ma branche distante en lui précisant l'origin :

git checkout -b preprod origin/preprod

Et j'ai bien ma branche en local comme git me l'indique :

Branch preprod set up to track remote branch preprod from origin.
Switched to a new branch 'preprod'

Connaitre le code réponse HTTP avec curl

Posté le dim. 29 septembre 2013 • Tags : curl, http

Pour connaitre le code réponse HTTP il suffit de faire :

curl -IL url

Voici l'exemble avec tumblr.com :

curl -IL http://tumblr.com

HTTP/1.1 301 Moved Permanently
Content-length: 0
Location: http://www.tumblr.com/
Connection: close

HTTP/1.1 302 Moved Temporarily
Server: nginx
Date: Sun, 29 Sep 2013 17:06:40 GMT
Content-Type: text/html
Connection: close
P3P: CP="ALL ADM DEV PSAi COM OUR OTRo STP IND ONL"
Location: https://www.tumblr.com/

HTTP/1.1 200 OK
Server: nginx
Date: Sun, 29 Sep 2013 17:06:42 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: Accept-Encoding
P3P: CP="ALL ADM DEV PSAi COM OUR OTRo STP IND ONL"
Set-Cookie: tmgioct=52485e21d628b00096885790; expires=Wed, 27-Sep-2023 17:06:41 GMT; path=/; httponly

Passer de svn à git

Posté le mar. 16 juillet 2013 • Tags : svn, git

Sur le projet Addictradio nous utilisons encore un de nos dépot avec svn. Il est temps de faire la migration de svn à git !

J'ai testé plusieurs méthodes et aucune ne fait exactement ce que je voulais voici donc ma procédure :

svn log --quiet 'svn://svn.mondomaine/monprojet' | grep "^r" | awk
'{print $3}' | sort | uniq | awk '{ print $1" = "$1"
<"$1"@mondomaine>" }' > authors.txt

J'ai ensuite édité authors.txt pour remplacer nos différents pseudos par nos prénoms et noms puis j'ai vérifié les adresses e-mails.

Puis j'ai utilisé git svn clone :

git svn clone 'svn://svn.mondomaine/monprojet' --no-metadata
--authors-file=authors.txt --tags=tags --branches=branches
--trunk=trunk monprojet

Si vous avez des tags dans svn, vous pouvez les mettre dans git :

git branch -r | sed -rne 's, \*tags/([^@]+)$,\\1,p' | while read
tag; do echo "git tag $tag 'tags/${tag}^'; git branch -r -d
tags/$tag"; done | sh

Pour finir ajoutez votre dépot distant :

git remote add origin git@git.mondomaine:/monprojet.git
git push -u origin --tags

Export / Import avec PostgreSQL

Posté le sam. 22 juin 2013 • Tags : sql

Pour exporter une table spécifique d'une base :

pg_dump *mabase* --table=*matable* > *dump_base_table*.sql

Pour exporter une base :

pg_dump *mabase* > *dump_base*.sql

Pour importer un dump dans une base :

psql *base* < *dump_base_table*.sql
psql *base* < *dump_base*.sql

Git déplacer mon dernier commit sur une autre branche

Posté le sam. 22 juin 2013 • Tags : git

J'ai fais une boulette ! J'ai commité deux fois en étant sur la branche master… Généralement je fais toujours une branche pour les modifications, cette fois j'avais créé cette branche debug_redirect mais je n'étais pas dessus…

Je me suis retrouvé avec les commits A-B-C sur mon master. Or le seul qui devait être dessus devait être A et je devais avoir B-C dans ma branche debug_redirect. Voici un schéma de la situation :

debug_redirect
          ↓
          A-B-C
              ↑
             master

Je dois donc soit mettre a jour ma branche debug_redirect. :

git checkout debug_redirect

git merge master

Ce qui donne :

debug_redirect
        ↓
    A-B-C
        ↑
      master

Il me reste qu'a retourner sur le master et revenir à la version A. :

git checkout master

git reset --hard HEAD~2

Ce qui donne :

  debug_redirect
      ↓
  A-B-C
  ↑
master

Maintenant que j'ai fixé mon bug sur ma branche  debug_redirect je peux le merger avec le master. :

git merge debug_redirect --no-ff

Résultat :

         B-C      debug_redirect
       /     \
     A - - - - D   master

Pour voir vos commits par branche vous pouvez aussi utiliser la commande git log :

git log --graph --oneline --decorate
*   4c677ac (HEAD, master) Merge branch 'debug_redirect'
|\ 
| * 90e7a7a (debug_redirect) Fix another bug on redirect
| * 40ae981 Fix the redirect bug
|/ 
* 4e06ff4 initial commit

Installation disque dur Seagate 4To Debian

Posté le ven. 21 juin 2013 • Tags : debian, linux, stockage

J'ai investi dans un gros disque dur de 4To pour mes sauvegardes (Fichiers persos, photos, vidéos…). J'ai donc formaté mon disque avec « Fdisk » et j'ai eu le message suivant :

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: The size of this disk is 4.0 TB (4000787030016 bytes).
DOS partition table format can not be used on drives for volumes
larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID
partition table format (GPT).

J'ai donc vérifié si j'avais dans le noyau l'option CONFIG_EFI_PARTITION active :

cat "/boot/config-`uname -r`" | grep CONFIG_EFI_PARTITION

CONFIG_EFI_PARTITION=y

C'était le cas, donc j'ai un autre problème… C'est « Fdisk » qui pose problème. Avec ma version (2.20.1) on peut faire une partition maximum de 2To.

Donc je me relance dans le partitionnement avec « parted ».

Note : mon disque est en /dev/sdd n'oubliez pas de modifier les commandes en fonction de votre configuration. :

parted /dev/sdd

GNU Parted 2.3
Using /dev/sdd
Welcome to GNU Parted! Type 'help' to view a list of commands.

Définir le label GPT qui permet de faire des partition > 2To. :

mklabel gpt

Warning: The existing disk label on /dev/sdd will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No?

yes
unit TB

Faire la partition de 4To :

mkpart primary 0.00TB 4.00TB

Vérifier :

print

Model: ATA ST4000DM000-1F21 (scsi)
Disk /dev/sdd: 4001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  4001GB  4001GB               primary

Quitter « parted » :

quit

Information: You may need to update /etc/fstab.

Formater la partition avec un système de fichiers donné :

mkfs.ext4 /dev/sdd1

mke2fs 1.42.5 (29-Jul-2012)
Étiquette de système de fichiers=
Type de système d'exploitation : Linux
Taille de bloc=4096 (log=2)
Taille de fragment=4096 (log=2)
« Stride » = 0 blocs, « Stripe width » = 0 blocs
244195328 i-noeuds, 976754176 blocs
48837708 blocs (5.00%) réservés pour le super utilisateur
Premier bloc de données=0
Nombre maximum de blocs du système de fichiers=4294967296
29809 groupes de blocs
32768 blocs par groupe, 32768 fragments par groupe
8192 i-noeuds par groupe
Superblocs de secours stockés sur les blocs :
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
    102400000, 214990848, 512000000, 550731776, 644972544

Allocation des tables de groupe : complété
Écriture des tables d'i-noeuds : complété
Création du journal (32768 blocs) : complété
Écriture des superblocs et de l'information de comptabilité du système de
fichiers : complété

Il ne reste plus qu'a monter la partition et éditer le fstab ;)


Toujours afficher le protocole dans Firefox

Posté le lun. 10 juin 2013 • Tags : web, config

Souvent lorsque je copie/colle une url depuis firefox j'ajoute http:// or lors de la copie celui-ci est copié… Je me retrouve donc avec deux fois http://

Pour résoudre ce problème j'affiche toujours le protocole dans Firefox :

Ecrire dans la barre d'adresse :

about:config

Rechercher :

browser.urlbar.trimURLs

Modifier la valeur par :

false