Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

nombre réponses : 25

#0 Re : -1 »  [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...) » Le 24/07/2010, à 15:27

BorX
Réponses : 2 096
# Pour chaque fichier commençant par un 't', on crée une variable nommée fic
for fic in t*; do
  # On supprime l'extension de fic pour générer le nom du répertoire dans une variable nommée rep
  rep="$(cut -d'.' -f1 <<< "$fic")"
  # On crée ce répertoire rep
  mkdir -p "$rep"
  # Et on déplace fic vers rep
  mv "$fic" "$rep"
# Fin de la boucle for
done

Pour plus de détail :

$ cut -d';' -f2 <<< "bla;bli;blu"
bli
$ cut -d';' -f3 <<< "bla;bli;blu"
blu
$ cut -d';' -f1 <<< "bla;bli;blu"
bla
$ man cut
$ man mkdir

#1 Re : -1 »  [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...) » Le 24/07/2010, à 23:54

BorX
Réponses : 2 096

Towcats : Merci pour cette rectification pas évidente pour un débutant (déjà que j'hésitais à remplacer le <<< par un echo |), mais effectivement plus juste et plus efficace.

Hizoka a écrit :

le meilleur site que j'ai vu sur le bash et en fr (même si la version fr date un peu)

idem

#2 Re : -1 »  [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...) » Le 30/10/2010, à 23:23

BorX
Réponses : 2 096

@caracolito
Je doute qu'on puisse passer des paramètres à Windows afin qu'il ouvre un fichier à son démarrage.
Je pense que le moyen le plus simple de faire ce que tu voudrais, c'est de configurer Windows pour qu'il exécute tous les fichiers qu'il trouve dans un répertoire particulier. Ce répertoire serait ainsi un répertoire partagé par VMWare, et c'est là que tu copierais les fichiers que tu souhaites lancer.
Exemple :
1 - Lancement du script sur un fichier skp (genre clic droit puis "Ouvrir avec Windows")
2 - Le script copie le fichier en question dans le répertoire partagé par VMWare
3 - Le script lance Windows (du moins la machine virtuelle VMWare)
4 - Windows, a son démarrage, lance les fichiers présents dans le répertoire partagé par VMWare, soit, dans l'exemple sketchup

Cela dit, est-ce que ça vaut vraiment la peine de faire mettre en place ce genre de procédure vachement lourde ? Je trouve plus simple de lancer Windows manuellement et d'y ouvrir le fichier...

#3 Re : -1 »  [config] Partagez vos '.screenrc' (screen = multiplexeur de terminaux) » Le 16/09/2010, à 09:55

BorX
Réponses : 63

Si tu aimes que les choses soient bien faites, je te déconseille de fermer gnome-terminal en cliquant simplement sur la croix.
Il est préférable de quitter le ou les terminaux qui y sont lancés, soit avec logout, soit avec exit, soit avec CTRL-D.

Il en va de même pour screen.
Afin de le fermer proprement, c'est mieux de quitter tous les terminaux qu'il contient.

En revanche, une option intéressante serait sinon de lancer screen avec les options -D -R.
Tu retrouverais ainsi le screen détaché tel que tu l'avais laissé plutôt que d'en lancer de nouveaux.

#4 Re : -1 »  Partagez vos alias et function (fichier .bashrc) » Le 05/10/2010, à 10:34

BorX
Réponses : 146

Vive le bash_completion ! tongue

[root ~]# invo[TAB] [TAB] [TAB]
acpid                       dbus                        keyboard-setup              portmap                     stop-bootlogd
acpi-support                dhcdbd                      killprocs                   procps                      stop-bootlogd-single
alsa-utils                  --disclose-deny             loadcpufreq                 --query                     sudo
amule-daemon                exim4                       module-init-tools           --quiet                     system-tools-backends
anacron                     --force                     mountoverflowtmp            rc                          --try-anyway
apache2                     gdm                         mysql                       rc.local                    udev
apmd                        hal                         mysql-ndb                   rcS                         udev-mtab
atd                         halt                        mysql-ndb-mgm               reboot                      umountfs
avahi-daemon                hdparm                      networking                  rmnologin                   umountroot
bluetooth                   --help                      network-manager             rsyslog                     urandom
bootlogd                    hibernate                   network-manager-dispatcher  screen-cleanup              vbesave
console-setup               ifupdown                    nfs-common                  sendsigs                    wpa-ifupdown
cpufrequtils                ifupdown-clean              --no-fallback               single                      x11-common
cron                        iptablesInit_BorX           openbsd-inetd               skeleton                    
cups                        kerneloops                  pcmciautils                 ssh                         
[root ~]# invoke-rc.d apa[TAB] [TAB] [TAB]
force-reload        restart             start-htcacheclean  stop                
reload              start               status              stop-htcacheclean   
[root ~]# invoke-rc.d apache2 rest[TAB]

#5 Re : -1 »  [résolu] Deezer essaie désepérément de charger la musique » Le 23/10/2010, à 21:25

BorX
Réponses : 14

Chez moi

apt-get autoremove --purge flashplugin64-installer
apt-get install flashplugin-installer

Et tout est revenu

#6 Re : -1 »  [Utilitaire Freebox] Script pour télécharger sur votre V6 » Le 19/08/2013, à 14:29

BorX
Réponses : 168

Salut,

Super, gmarin !
Cette présentation a l'avantage de montrer dans le détail le fonctionnement de chaque requête.
Petite remarque pour la suite : l'ensemble mériterait un peu de factorisation, car les scripts en annexe deviennent vite indigestes tongue
(fonction pour la requête de base, fonction pour le login, pour l'authentification, fonction générique pour aller chercher telle ou telle valeur, fonction pour interpréter le JSON, ...).
Ainsi, tu pourrais plus facilement éviter de passer systématiquement par des fichiers temporaires en pipant directement le résultat de tes fonctions.

Enfin, on commence à trouver des implémentations Shell de l'API Freebox !

À ce sujet, j'ai trouvé une excellente implémentation simple et efficace sur GitHub : https://github.com/JrCs/freeboxos-bash-api
Cherchant depuis longtemps à redémarrer ma Freebox automatiquement, j'ai repris ce Shell pour lui ajouter l'authentification et le reboot :
https://github.com/BorX/freeboxos-bash-api

#7 Re : -1 »  Script Shell qui transforme les fichiers doublons en liens durs » Le 30/07/2013, à 17:38

BorX
Réponses : 10

Salut,

Houla ! Vieux sujet en effet !
3 ans déjà ! De l'eau a coulé sous les ponts, depuis...

J'ai utilisé FSlint pendant un moment.
C'est un utilitaire assez pratique, qui fait, notamment, la même chose que ce script.
Il permet de repérer les doublons et, dès lors, de faire des opérations dessus : s'en débarrasser, en faire des hardlinks, ...
Il se présente sous la forme d'une GUI, donc plus conviviale, mais qu'on ne peut pas automatiser, contrairement au script.
Il faut l'essayer et s'en servir de temps en temps pour réorganiser ses arborescences, gagner en place, ... bref faire le ménage.
FSlint

Personnellement, je joue toujours du hardlink principalement pour mes sauvegardes sur disques durs externes (gain de place), avec un script maison (à base de rsync) que je ne crois pas avoir posté sur ce forum.

Parallèlement, j'expérimente des sauvegardes avec git qui répond autrement à la problématique.
Il référence chaque fichier, à partir de son empreinte SHA1, dans un fichier à part. Ainsi, 2 fichiers indépendants mais identiques sont référencés par git au sein du même fichier.
Ca évite de chercher les doublons pour en faire des hardlinks (git le fait), et ça permet à l'un des doublons d'être modifié sans forcément modifier l'autre (cerise sur le gâteau : en gardant l'historique).
Bref, de l'eau a coulé sous les ponts... smile

Mais il faut essayer FSlint wink
http://www.pixelbeat.org/fslint/

Quant à l'idée du topic multi-rubriques, l'idée est bonne.
En gros, on remplace le système de rubriques par un système de tags. Un topic ne se retrouve donc plus dans une et une seule rubrique, mais appartient à un ou plusieurs tags...
Par contre, l'administration risque d'être bien plus ardue hmm

#8 Re : -1 »  Script Shell qui transforme les fichiers doublons en liens durs » Le 31/07/2013, à 00:19

BorX
Réponses : 10

smile
J'ai fait ce script quand j'ai commencé à mettre à profit certains avantages des hardlinks.
En le présentant dans ce topic, c'est principalement ces avantages que je mettais en avant, tout en proposant aux intéressés d'utiliser le script.
Je ne connaissais pas encore FSlint à l'époque.
Depuis, j'ai joué avec et, (de mémoire,) FSlint propose bien plus de fonctionnalités que ce script, tant au niveau de la recherche des fichiers que des opérations qu'on peut ensuite effectuer.
Donc, utilise-le ! wink

Après, si tu veux faire de l'automatisation, alors fais du scripting !
Pour ce faire, tu peux naturellement t'inspirer du script présenté ici
Cependant,
1) il faut que l'automatisation soit un besoin, et que ce besoin soit défini, sinon c'est pas la peine
2) il faut connaître (ou vouloir apprendre) le scripting

Note : ce script n'est pas vraiment optimisé pour de l'automatisation, puisqu'il génère un autre script qui peut être revu et modifié avant exécution.
C'est utile pour une exécution ponctuelle (et dans ce cas, il vaut mieux utiliser FSlint wink), mais pour de l'automatisation, je rejoins l'avis de nesthib qui n'aime pas les scripts qui génèrent des scripts.

Bref, utilise FSlint wink
Mais fais gaffe à ce que tu fais, aussi...
C'est le genre d'outils avec lesquels une fausse manip' peut faire mal.
Alors fais des essais dans un répertoire de tests dans lequels tu auras balancé en doublons quelques gros fichiers, mp3, divx, quelques fichiers textes, des images, etc...

#9 Re : -1 »  Script Shell qui transforme les fichiers doublons en liens durs » Le 31/07/2013, à 10:47

BorX
Réponses : 10

Et bah tout est dit ! smile
Le script de ce topic n'a donc qu'une utilité pédagogique (et encore roll)

#10 Re : -1 »  (K/L)Ubuntu (netbook) Slim remix 32/64bits » Le 23/07/2010, à 18:44

BorX
Réponses : 182
r0manTique a écrit :

Ma question est : Y aura-t-il une version Slim pour chaque version future d'ubuntu ? smile

La question mérite d'être posée... à Canonical !

En effet, je trouve l'initiative de billou d'autant plus intéressante que son succès révèle une véritable volonté des utilisateurs d'Ubuntu à ne pas voir leur OS favori se transformer en une suite logicielle imposée.
(je n'avais pas pris le temps de le dire, c'est fait ; merci billou, excellente initiative ! tongue)

Alors que billou fasse une slim à chaque release, ce serait cool (de sa part big_smile), mais que Canonical propose sa version slim, ce serait même mieux !

Mais ce n'est clairement pas dans les aspirations de Canonical... et d'autres, avant le reste des utilisateurs d'Ubuntu, l'ont déjà compris :
OpenGeu et Crunchbang quittent le navire Ubuntu

#11 Re : -1 »  [résolu] Transformer un lien symbolique en fichier réel ? » Le 08/08/2011, à 10:51

BorX
Réponses : 16

Yop,

Le script amélioré :

#!/bin/bash
# Pour chaque paramètre
for lien in "$@"; do
  # S'il s'agit d'un lien symbolique
  [ -L "$lien" ] && {
    # On se positionne dans le répertoire du lien (pour gérer les liens pointant vers des chemins relatifs)
    cd "$(dirname "$lien")"
    # On ne se soucie désormais que du nom du lien
    lien="$(basename "$lien")"
    # On définit la cible du lien
    orig="$(readlink "$lien")"
    # On efface le lien
    rm "$lien"
    # On copie la cible du lien à l'endroit du lien
    cp "$orig" "$lien"
    # On revient au répertoire précédent
    cd - >/dev/null
  }
done

Pour l'appliquer sur tous les liens symboliques d'un répertoire :

find le/path/vers/le/repertoire/ -type l -print0 | xargs -r0t /tmp/script.sh

#12 Re : -1 »  [résolu] Transformer un lien symbolique en fichier réel ? » Le 08/08/2011, à 11:02

BorX
Réponses : 16

Allez, bonus :
Pour les liens morts (qui pointent vers une cible inexistante), ne touche pas au lien (et le laisse donc mort).
Pour les liens pointant vers des répertoires, copie intégralement le répertoire cible (liens symboliques inclus).

#!/bin/bash
replaceLinkByTarget() {
    # On se positionne dans le répertoire du lien (pour les liens pointant vers des chemins relatifs)
    cd "$(dirname "$lien")"

    # On ne se soucie désormais que du nom du lien
    lien="$(basename "$lien")"

    # On définit la cible du lien
    orig="$(readlink "$lien")"

    # Si le lien pointe vers une cible inexistante
    [ -e "$orig" ] || return 1;

    # On efface le lien
    rm "$lien"

    # On copie la cible du lien à l'endroit du lien
    cp -a "$orig" "$lien"

    # On revient au répertoire précédent
    cd - >/dev/null
}

# Pour chaque paramètre
for lien in "$@"; do
  # S'il s'agit d'un lien symbolique
  [ -L "$lien" ] && replaceLinkByTarget "$lien";
done

#14 Re : -1 »  Script capable de cliquer » Le 27/10/2010, à 10:09

BorX
Réponses : 22

Juste une piste...
Votre soucis est de connaître les requêtes qu'effectue une application flash afin de les réeffectuer, c'est bien ça ?
Dans ce cas, ne suffit-il pas de positionner une sorte de proxy relais entre votre navigateur et le serveur ? Un tel proxy peut ainsi être en mesure d'enregistrer les requêtes effectuées par votre navigateur, même celles effectuées par une application flash exécutée au sein de ce navigateur. Une fois les requêtes récupérées, une série de wget suffit pour les reproduire.

Ce système est notamment utilisé pour effectuer des tests de charge.
Par exemple avec JMeter, on le configure dans un premier temps en mode proxy. En configurant son navigateur pour qu'il utilise le proxy de JMeter, ce dernier enregistre l'ensemble des requêtes effectuées au sein du navigateur. On peut dès lors modifier ces requêtes à souhait et les réexecuter, dans un second temps, sans navigateur, donc sans application flash.

Sans forcément utiliser JMeter, il doit exister des proxies qu'on fait tourner en local et par lequel on fait passer le navigateur afin de tracer les requêtes qu'il effectue, et ainsi être en mesure de les réexécuter par des wget.

C'est, je pense, le meilleur moyen de connaître les interactions entre une application flash et un serveur.

#15 Re : -1 »  Script capable de cliquer » Le 28/10/2010, à 15:31

BorX
Réponses : 22
wget -o /tmp/connexion.log -O /tmp/page.html http://forum.ubuntu-fr.org/viewtopic.php?pid=3815662

tongue

man wget

wink
L'utilité première de wget est de faire des requêtes HTTP !!
En jouant un peu avec ses options, il peut notamment maintenir une session, et ainsi littéralement remplacer un navigateur.

#16 Re : -1 »  Script capable de cliquer » Le 29/10/2010, à 19:04

BorX
Réponses : 22

Oui, JMeter n'est pas très intuitif au début...
De mémoire, il ne te faut activer que 2 composants : le proxy et le contrôleur enregistreur (par des clics droits sur le "Poste de travail de JMeter".
Une fois le proxy lancé (écoutant par exemple le port 8080) et le navigateur configuré pour l'utiliser (par exemple localhost:8080 comme proxy), le contrôleur enregistreur devrait afficher les requêtes effectuées par le navigateur.

La technologie utilisée sur le serveur n'a aucune importance (que ce soit du PHP, du .net, du Java, du Perl, du script Shell, ...). Le but n'est que de capturer des requêtes HTTP afin de les reproduire.

EDIT: Mais je pense qu'il existe des proxies pas trop lourds à mettre en place et parfaitement adaptés pour tracer les requêtes qu'ils voient passer...

#17 Re : -1 »  Script capable de cliquer » Le 31/10/2010, à 00:42

BorX
Réponses : 22

LiveHTTPHeaders peut être une bonne idée, mais est-ce que ça marche pour une application flash ? J'en doute.
Note :

GET /building/building_overview.php

Cette URL est à compléter avec le nom du serveur sur laquelle la requête est effectuée (http://le.serveur/building/building_overview.php).

Je ne vois pas ce qu'il y a de compliqué avec wget. On lui file une URL, et il fait la requête...

wget http://le.serveur/building/building_overview.php

pis c'est tout hmm

#18 Re : -1 »  Script capable de cliquer » Le 31/10/2010, à 17:54

BorX
Réponses : 22
baba00000000 a écrit :

tu dis que c'est simple, mais pour des personnes qui n'ont aucune connaissant c'est pas facile lol, mais on abandonne pas

Je comprends bien...

baba00000000 a écrit :

Donc je continue mes expériences. Ce code devrait être ma chose à répéter indéfiniment, sa doit me construire des modules. C'est la rèquête prise au moment du clique de construction.

POST /building/shipyard/shipyard_overview.php?area=component&add=33&component_category= f_prompt=10&sei_fieldchange_list=

C'est bien la requête "attrapée" au moment d'un clic dans ton application flash ? ou bien au moment du chargement de ton application flash ?

Si c'est bien la requête "attrapée" au moment d'un clic dans ton application flash, ça semble bon.

baba00000000 a écrit :

Donc j'ai bien compris j'ai mi l'adresse du serveur avant et j'ai suprimé POST.

C'est bien ce que j'ai expliqué. Mais en l'occurrence, il faut certainement pousser un peu plus loin, et pour ce faire, il faut connaître quelques principes de base du protocole HTTP.
wget est fait pour effectuer des requêtes HTTP, de la plus simple (comme montré dans mes exemples), aux requêtes les plus complexes (en GET, en POST, avec des paramètres, avec un maintien de session, ... il sait même effectuer des requêtes avec d'autres protocoles que HTTP).

baba00000000 a écrit :

Je lance mon navigateur et rien ne se construit.

Je pense que c'est parce qu'il faut effectivement pousser un peu plus la reproduction des requêtes.
Il convient donc d'étudier d'un peu plus près les requêtes effectuées par l'application flash en question, et même les autres avant.

baba00000000 a écrit :

C'est peut peut être que je me suis pas connecté a mon compte ?

C'est un bon début de réflexion. En effet, il est probable que le serveur n'accepte pas certaines opérations pour un utilisateur non connecté. Si c'est bien le cas, il faut paramétrer wget afin qu'il effectue une succession de requêtes avec un maintien de session.
Autre piste : par défaut, wget fait des requêtes GET. Si le serveur attend une requête POST, une requête GET ne marchera pas.

Bref, comme je le disais, il faut un minimum de connaissances du protocole HTTP, et il faut un peu potasser la doc de wget smile

#19 Re : -1 »  bash ou sh » Le 12/09/2010, à 11:11

BorX
Réponses : 10

Non ! Et c'est là la principale différence entre les deux.

sh est un peu le standard du shell.
Commencer un script shell avec #!/bin/sh lui assure une meilleure compatibilité en passant d'un système à un autre.

En revanche, commencer un script shell avec #!/bin/bash permet d'accéder à une syntaxe plus étendue, mais qui ne fonctionnera pas forcément en passant sur d'autres systèmes (AIX, Solaris, ...).

La confusion vient du fait que sh est souvent un alias vers bash (ou dash) sur les systèmes récents, bash étant de plus en plus établi comme nouveau standard :

$ ls -l /bin/*sh
-rwxr-xr-x 1 root root 934336 2010-04-19 04:16 /bin/bash*
-rwxr-xr-x 1 root root 101608 2010-04-02 01:29 /bin/dash*
lrwxrwxrwx 1 root root      4 2010-07-11 23:44 /bin/rbash -> bash*
lrwxrwxrwx 1 root root      4 2010-07-11 23:44 /bin/sh -> dash*
lrwxrwxrwx 1 root root      7 2010-07-11 23:44 /bin/static-sh -> busybox*

#20 Re : -1 »  bash ou sh » Le 12/09/2010, à 11:15

BorX
Réponses : 10

http://princessleia.com/plug/2008-JP_bash_vs_dash.pdf
http://forum.ubuntu-fr.org/viewtopic.php?pid=2968428#p2968428

#21 Re : -1 »  [~Résolu~][Apache] DocumentRoot d'un Alias » Le 12/07/2010, à 19:14

BorX
Réponses : 5

Je pense comprendre ton problème.
Tes applis utilisent $_SERVER['DOCUMENT_ROOT'] pour retrouver leur arborescence de fichiers.
Seulement comme elles tournent dans des répertoires détachés du DocumentRoot, tu utilises des Aliases pour y accéder, et donc le coup du $_SERVER['DOCUMENT_ROOT'] ne marche plus...

Ne peux-tu pas t'y retrouver avec $_SERVER['SCRIPT_FILENAME'] ?
(qui doit renvoyer un truc du style /home/leUser/le/path/vers/appli1/encore/des/repertoires/leNomDuFichier.php)

#22 Re : -1 »  [~Résolu~][Apache] DocumentRoot d'un Alias » Le 12/07/2010, à 22:27

BorX
Réponses : 5

Bon. tongue
En fait, je n'ai jamais été vraiment confronté à ce problème car j'ai généralement utilisé des variables globales du type :

$ROOT_URL='/appli1/';
$ROOT_PATH='/home/leUser/le/path/vers/appli1/';

Certes, il faut modifier ces variables dès qu'on change d'environnement, mais le désagrément est minime, surtout si ces variables sont externalisées dans un fichier à part, dédié à tout ce qui concerne la configuration de l'application.
En outre, on peut naturellement initialiser ces variables avec des données de $_SERVER, ce qui évite d'utiliser ce genre de "super-variables" un peu partout (et n'importe comment).

Edit :
Un de mes fichiers de configuration, typiquement, commence ainsi :

more conf/global.php 
<?
$PATH_ROOT = '/home/leUser/le/path/vers/appli1/';
$PATH_BIN = $PATH_ROOT.'bin/';
$PATH_LIB = $PATH_ROOT.'lib/';
$PATH_DAO = $PATH_ROOT.'dao/';
// ...

Ainsi, partout dans le reste de mon code, je fais référence à tel ou tel chemin avec des variables centralisées et globales, mais jamais en dur (ni en relatif ni en absolu car cela tendrait à rendre mon application difficile à maintenir).

#23 Re : -1 »  [PHPMyAdmin] #1045 Connexion au serveur MySQL non permise - RÉSOLU » Le 11/07/2010, à 03:25

BorX
Réponses : 3

Salut,

Tu te logues en ligne de commande avec l'utilisateur root.
As-tu essayé de te loguer avec ce même utilisateur sous PHPMyAdmin (au lieu de Admin) ?

#24 Re : -1 »  [PHPMyAdmin] #1045 Connexion au serveur MySQL non permise - RÉSOLU » Le 11/07/2010, à 12:32

BorX
Réponses : 3
Koshie-2.0 a écrit :

Nice ! Donc c'est root et pas admin. Ça change quelque chose ?

Ça change tout smile
PhpMyAdmin attend le nom de l'utilisateur, tout comme en ligne de commande.
Et à ma connaissance, je n'ai jamais vu d'alias de login. Donc root, c'est root, et admin, s'il existe, c'est admin tongue

Pense à mettre en [Résolu] smile