#1501 Le 17/12/2011, à 12:51
- krupt
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour,
je suis en train d essayer de faire un script "crontabé" qui vient nettoyer un dossier content des .avi ou mkv ou autres.
Selon 3 regles.
Si le avi|mkv est < 600M, on l envoie dans le dossier X
Si > 600M, on envoie dans le dossier Y
Si > 2G , dossier Z
Puis,
si dans les dossiers on retrouve un .nfo ET qu il est seul dans le dossier on le supprime.
Puis on supprime tous les dossiers vides .
Voici ce que ca donne coté code.
#!/bin/bash
find '/home/done/' -type f -iname '*.avi' -o -iname '*.mkv' -size -600M | xargs -I '{}' mv {} '/media/X'
find '/home/done/' -type f -iname '*.avi' -o -iname '*.mkv' -size +600M | xargs -I '{}' mv {} '/media/Y'
find '/home/done/' -type f -iname '*.avi' -o -iname '*.mkv' -size +3G | xargs mv -i -t '/media/Z'
for i in `find '/home/done' -iname '*.nfo'` ; do rep=`dirname $i` ; x=`find $rep -type f | wc -l` ; [ $x -ge 2 ] || rm $i ; done
rmdir /home/done/* > /dev/null 2>&1
Mon probleme, si j ai des dossiers exotiques, cela ne marche pas, type :
"Mike post .vostf.nfo/Mike post .vostf.nfo" -> la on a un dossier avec des points et des espaces, du coup il n est pas détecté...
si vous avez des idées pour améliorer un peu ca...
Dernière modification par krupt (Le 17/12/2011, à 12:58)
Hors ligne
#1502 Le 17/12/2011, à 13:20
- Postmortem
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Salut,
Bon, j'avoue que j'ai pas tout testé donc fais des essais avant de balancer ça :
#!/bin/bash
find '/home/done/' -type f \( -iname '*.avi' -o -iname '*.mkv' \) -size -600M -exec mv '{}' '/media/X' \;
find '/home/done/' -type f \( -iname '*.avi' -o -iname '*.mkv' \) -size +600M -exec mv '{}' '/media/Y' \;
find '/home/done/' -type f \( -iname '*.avi' -o -iname '*.mkv' \) -size +3G -exec mv -i '{}' '/media/Z' \;
shopt -s dotglob
while read -rd ''
do
rep=$(dirname "$REPLY")
my_tab=( "$rep"/* )
[[ ${#my_tab[@]} -eq 1 ]] && rm "$REPLY"
done < <(find '/home/done' -iname '*.nfo' -print0)
rmdir /home/done/* > /dev/null 2>&1
Dernière modification par Postmortem (Le 17/12/2011, à 13:22)
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#1503 Le 17/12/2011, à 13:42
- krupt
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
ha ouais quand meme, c est légerement plus complexe, merci bcp je vais eplucher ca pour comprendre et tester !
Merci bien
bon le shopt n est pas dégéré chez moi, c est quoi une commande sh ? peux tu m en dire un peu plus . peut on la contourner?
par contre shopt tout court passe en shell
Dernière modification par krupt (Le 17/12/2011, à 13:48)
Hors ligne
#1504 Le 17/12/2011, à 14:58
- Postmortem
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Le shopt c'est du bash.
shopt -s dotglob permet au caractère * (étoile) de prendre en compte les fichiers commençant par un . (point)
Tu as quelle version de bash ?
EDIT :
Si tu n'as pas de fichiers commençant par . (point), on peut se passer du shopt -s dotglob
Il est utile seulement si tu as des fichiers commençant par . dans $rep lorsque l'on fait : my_tab=( "$rep"/* )
Dernière modification par Postmortem (Le 17/12/2011, à 15:13)
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#1505 Le 18/12/2011, à 20:49
- pseudomino
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
[Unity] Ajouter un indicator-applications ouvrant des post-it placés dans un dossier
Voilà, un code en Python fait à partir d'indicator-places.
C'est pour mes propres besoins, donc je sais pas si ça servira à quelqu'un... Personnellement j'utilise de simples fichiers txt comme Post-it, parce que j'en ai besoin aussi bien sur Win que sous Linux (et que j'aime les trucs simples quand c'est possible!)
Il suffit de modifier '/chemin/vers/dossier/Post-it' au besoin, et de le lancer.
Et à ajouter dans les Applications au démarrage si adopté.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Un app-indicator très simple qui ouvre des post-it placés dans un dossier
# créé par Pseudomino à partir de indicator-places le 18/12/2011
#
import os
import gtk
import gio
import signal
import subprocess
import appindicator
import urllib
APP_NAME = 'indicator-post-it'
APP_VERSION = '0.1'
class IndicatorPostit:
def __init__(self):
self.ind = appindicator.Indicator("post-it", "tomboy", appindicator.CATEGORY_APPLICATION_STATUS)
self.ind.set_status(appindicator.STATUS_ACTIVE)
self.update_menu()
def create_menu_item(self, label, icon_name):
image = gtk.Image()
image.set_from_icon_name(icon_name, 24)
item = gtk.ImageMenuItem()
item.set_label(label)
item.set_image(image)
item.set_always_show_image(True)
return item
# Méthode pour créer un menu
def update_menu(self, widget = None, data = None):
# Créer le menu
menu = gtk.Menu()
self.ind.set_menu(menu)
# Lister les post-it
listing = os.listdir('/chemin/vers/dossier/Post-it/');
for path in listing:
item = self.create_menu_item(path, "tomboy")
item.connect("activate", self.on_postit_click, path)
menu.append(item)
# Afficher le menu
menu.show_all()
# Ouvrir un post-it
def on_postit_click(self, widget, path):
subprocess.Popen('gedit ~/Post-it/' + path, shell = True)
if __name__ == "__main__":
# Catch CTRL-C
signal.signal(signal.SIGINT, lambda signal, frame: gtk.main_quit())
# Lancer l'indicator
i = IndicatorPostit()
# Boucle gtk principale
gtk.main()
Dernière modification par pseudomino (Le 18/12/2011, à 20:50)
Changer le pansement ou penser le changement?
Hors ligne
#1506 Le 21/12/2011, à 18:31
- n3o51
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour je voudrais savoir si quelqu'un as fait un script nautilus qui nous demanderai un nom de dossier et qui créer /nondedossier avec dedans /css/style.css index.php et qui poserait certaines question comme le titre du document etc ? afin de ne pas me lancer dans un script si c'est deja fait
Merci a vous par avance
Welcome to the real world
________________________________
Hors ligne
#1507 Le 22/12/2011, à 16:47
- nordinatueur
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Je ne crois pas que ça ait déjà été fait !
Tu peux donner plus de détails sur l'architecture du dossier... Ce serait intéressant d'avoir plusieurs avis sur les améliorations...
Dernière modification par nordinatueur (Le 22/12/2011, à 16:57)
Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !
Hors ligne
#1508 Le 23/12/2011, à 15:40
- n3o51
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
exemple avec un dossier
html>css>style.css
html>index.php
html>sass>style.scss
html>js>style.js
html>js>jquery.js
un template de base
Welcome to the real world
________________________________
Hors ligne
#1509 Le 23/12/2011, à 19:26
- Bousky
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Voici une partie d'un script bash que j'utilise pour développer en C. Ce morceau crée un projet de base en étant déjà dans le bon dossier :
# arborescence
mkdir tmp
mkdir src
# main.c
echo "\
#include <stdlib.h>$include
int main(int argc, char *argv[])
{
return EXIT_SUCCESS;
}" > src/main.c
# Makefile
echo "\
EXEC = $exec
CC = gcc
CFLAGS =$cflags -Wall
LDFLAGS =$ldflags
all: \$(EXEC)
\$(EXEC): tmp/main.o
\$(CC) \$(LDFLAGS) -o \$(EXEC) tmp/main.o
tmp/main.o: src/main.c
\$(CC) \$(CFLAGS) -o tmp/main.o -c src/main.c
clean:
rm -rf tmp/*
clear: clean
rm -f \$(EXEC)
" > Makefile
Les variables sont, dans mon cas, initialisées à partir des options sur la ligne de commande, mais il est possible d'utiliser zenity pour poser la question.
Sans rapport : je viens d'ajouter à mon tableau de bord (gnome2) un moniteur système montrant le trafic réseau. Je n'utilise généralement qu'une interface à la fois, mais pas toujours la même, j'ai donc créé un lanceur qui appelle un script pour changer l'interface dont le trafic est affiché :
#!/bin/bash
interface=$(zenity --list \
--title="Moniteur réseau" \
--window-icon="/usr/share/icons/hicolor/scalable/apps/notification-network-ethernet-connected.svg" \
--text="Sélection de l'interface" \
--column="Interfaces" \
$(ifconfig | awk '/^[^ ]/{if($1!="lo")print $1}'))
[ "$interface" ] || exit
gconftool-2 --type=string --set "/apps/panel/applets/$1/prefs/monitors/$2/interface" $(tr -d [:digit:] <<< "$interface")
gconftool-2 --type=int --set "/apps/panel/applets/$1/prefs/monitors/$2/interface_no" $(tr -d [:alpha:] <<< "$interface")
killall gnome-panel
Je ne suis pas très content du « killall gnome-panel », mais je n'ai pas trouvé mieux pour que la modification soit prise en compte. Il prend en argument le nom de l'applet (« applet_16 » dans mon cas) et le numéro de l'affichage (un applet peut afficher plusieurs informations).
Dernière modification par Bousky (Le 23/12/2011, à 19:28)
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#1510 Le 05/01/2012, à 07:33
- creamy
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour
Avec cette commande on peut rapidement afficher / masquer les icônes du bureau.
gsettings set org.gnome.desktop.background show-desktop-icons true
true pour afficher les icônes du bureau. false pour masquer.
Est-ce que quelqu'un aurait la gentillesse de faire un petit script qui switch entre true / false, en fonction de la valeur existante ?
J'ai fouillé un peu mais n'ai pas trouvé.
gsettings get org.gnome.desktop.background show-desktop-icons
Permet de savoir si la valeur est à true ou false.
J'y connais vraiment rien du tout
Mais quelque-chose comme ça devrait y parvenir ?
#!/bin/bash
bureau = gsettings get org.gnome.desktop.background show-desktop-icons
if bureau is true:
gsettings set org.gnome.desktop.background show-desktop-icons false
else:
gsettings set org.gnome.desktop.background show-desktop-icons true
Le secret de l'action, c'est de commencer : http://www.le-message.org
Hors ligne
#1511 Le 05/01/2012, à 09:32
- Postmortem
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Salut creamy,
C'est pour quelle version d'ubuntu ? Parce que chez moi, la valeur est à false et les icônes sont pourtant présentes sur mon bureau. Je suis sous Natty (11.04).
Pour le script :
#!/bin/bash
if $(gsettings get org.gnome.desktop.background show-desktop-icons)
then
gsettings set org.gnome.desktop.background show-desktop-icons false
else
gsettings set org.gnome.desktop.background show-desktop-icons true
fi
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#1512 Le 05/01/2012, à 09:39
- creamy
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Salut, et merci Postmortem ça marche impec ! :-)
C'est pour Oneiric. Avant on allait dans Gconf. apps → nautilus → preferences il me semble.
Ceci dit j'ai pas mal bidouillé comme un sauvageon l'os, et je suis pas certain que ma version soit très conforme à ce qu'on est supposé y trouver.
Le secret de l'action, c'est de commencer : http://www.le-message.org
Hors ligne
#1513 Le 10/01/2012, à 16:53
- Miloose
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour,
Je recherche à regrouper des fichiers csv ensemble. Au début, j'avais un mélange de csv et xls, mais j'ai déjà pu les convertir automatiquement avec un petit find et unoconv.
Le problème est que mes fichiers ne sont pas dans le même dossier (sinon, je pourrais les recopier tous au même endroit, et hop, le tour est joué). Tous les fichiers s'appellent MinAna.csv, et sont dans des arborescences du type
./2010_08_13_0915/15401410/MinAna.csv
./2010_08_13_0915/15401419/MinAna.csv
./2010_08_13_0915/15401415/MinAna.csv
./2010_08_13_0915/15401407/MinAna.csv
./2010_08_13_0915/15401408/MinAna.csv
./2010_08_13_0915/15401414/MinAna.csv
./2010_08_13_0915/15401418/MinAna.csv
./2010_08_13_0915/15401416/MinAna.csv
./2010_08_13_0915/15401413/MinAna.csv
./2010_12_10_0944/15401409/MinAna.csv
./2010_12_10_0944/15401411/MinAna.csv
./2010_12_10_0944/15401412/MinAna.csv
./2010_12_10_0944/15401417/MinAna.csv
./2010_12_10_0944/15401410/MinAna.csv
./2010_12_10_0944/15401419/MinAna.csv
./2010_12_10_0944/15401415/MinAna.csv
./2010_12_10_0944/15401407/MinAna.csv
./2010_12_10_0944/15401408/MinAna.csv
./2010_12_10_0944/15401414/MinAna.csv
./2010_12_10_0944/15401418/MinAna.csv
./2010_12_10_0944/15401416/MinAna.csv
./2010_12_10_0944/15401413/MinAna.csv
Il y a donc une date, puis un numéro de série, puis le MinAna.csv en question. Je dois regrouper le tout par numéro de série (donc tous les 15401408 ensemble, les 15401409 ensemble...).
Si je fais un "find . -name '*.csv' |grep 15401408", j'ai un fichier avec tous les .csv pour le 15401408, mais comment les regrouper ? Ca doit être tout con, mais je butte (hum, le shell et moi ça fait 2....)
voilà le contenu de la commande find
$ find . -name '*.csv' |grep 15401408
./2009_10_16_0910/15401408/MinAna.csv
./2009_06_05_0900/15401408/MinAna.csv
./2008_09_19_0941/15401408/MinAna.csv
./2010_05_28_0725/15401408/MinAna.csv
./2010_06_03_1945/15401408/MinAna.csv
./2009_08_06_1039/15401408/MinAna.csv
./2011_02_04_0345/15401408/MinAna.csv
./2009_10_09_0910/15401408/MinAna.csv
./2010_02_26_1537/15401408/MinAna.csv
./2008_11_21_0916/15401408/MinAna.csv
./2010_02_26_0900/15401408/MinAna.csv
./2010_08_06_0915/15401408/MinAna.csv
./2009_01_15_0915/15401408/MinAna.csv
./2009_05_15_0900/15401408/MinAna.csv
./2009_08_07_0910/15401408/MinAna.csv
./2009_09_11_0910/15401408/MinAna.csv
./2011_05_27_0345/15401408/MinAna.csv
./2010_03_12_0900/15401408/MinAna.csv
./2008_10_24_0918/15401408/MinAna.csv
./2011_07_01_0345/15401408/MinAna.csv
./2010_05_28_0915/15401408/MinAna.csv
./2010_04_09_1105/15401408/MinAna.csv
./2010_10_01_0915/15401408/MinAna.csv
./2009_08_21_0955/15401408/MinAna.csv
./2009_10_02_0910/15401408/MinAna.csv
./2011_03_18_0345/15401408/MinAna.csv
./2008_12_19_1036/15401408/MinAna.csv
./2011_04_15_0410/15401408/MinAna.csv
./2010_03_19_0900/15401408/MinAna.csv
./2009_07_17_0910/15401408/MinAna.csv
./2010_02_19_0900/15401408/MinAna.csv
./2010_01_29_0900/15401408/MinAna.csv
./2009_09_04_0910/15401408/MinAna.csv
./2008_10_17_0905/15401408/MinAna.csv
./2010_09_10_0915/15401408/MinAna.csv
./2011_05_13_1412/15401408/MinAna.csv
./2010_06_25_0915/15401408/MinAna.csv
./2008_12_19_0935/15401408/MinAna.csv
./2009_02_27_1057/15401408/MinAna.csv
./2008_07_10_1128/15401408/MinAna.csv
./2009_03_13_0944/15401408/MinAna.csv
./2009_11_20_0910/15401408/MinAna.csv
./2011_01_14_1726/15401408/MinAna.csv
./2010_08_27_0915/15401408/MinAna.csv
./2009_08_28_0910/15401408/MinAna.csv
./2011_01_07_0345/15401408/MinAna.csv
./2009_11_27_0900/15401408/MinAna.csv
./2009_04_03_0900/15401408/MinAna.csv
./2010_02_12_0900/15401408/MinAna.csv
./2010_10_15_0915/15401408/MinAna.csv
./2011_05_20_0345/15401408/MinAna.csv
./2008_11_07_0916/15401408/MinAna.csv
./2010_10_08_1127/15401408/MinAna.csv
./2010_11_05_0915/15401408/MinAna.csv
./2010_07_02_0915/15401408/MinAna.csv
./2011_04_29_0345/15401408/MinAna.csv
./2008_09_26_1000/15401408/MinAna.csv
./2010_06_04_0915/15401408/MinAna.csv
./2010_01_08_0900/15401408/MinAna.csv
./2010_04_16_0900/15401408/MinAna.csv
./2011_06_03_0345/15401408/MinAna.csv
./2010_04_23_0934/15401408/MinAna.csv
./2009_03_20_0919/15401408/MinAna.csv
./2010_05_07_0915/15401408/MinAna.csv
./2010_09_24_0915/15401408/MinAna.csv
./2008_11_07_0855/15401408/MinAna.csv
./2010_06_05_1933/15401408/MinAna.csv
./2008_11_21_0936/15401408/MinAna.csv
./2009_12_04_0900/15401408/MinAna.csv
./2009_04_29_1047/15401408/MinAna.csv
./2009_07_10_0910/15401408/MinAna.csv
./2010_11_12_1453/15401408/MinAna.csv
./2010_02_05_0900/15401408/MinAna.csv
./2010_06_18_0915/15401408/MinAna.csv
./2010_11_19_1309/15401408/MinAna.csv
./2010_07_30_0915/15401408/MinAna.csv
./2010_04_03_0925/15401408/MinAna.csv
./2010_03_26_0900/15401408/MinAna.csv
./2009_04_24_0900/15401408/MinAna.csv
./2010_10_08_0915/15401408/MinAna.csv
./2009_08_14_0910/15401408/MinAna.csv
./2010_04_09_0900/15401408/MinAna.csv
./2009_03_27_0900/15401408/MinAna.csv
./2010_07_23_0915/15401408/MinAna.csv
./2010_05_14_0915/15401408/MinAna.csv
./2009_07_03_0910/15401408/MinAna.csv
./2009_07_31_0910/15401408/MinAna.csv
./2009_09_18_0910/15401408/MinAna.csv
./2009_06_26_0900/15401408/MinAna.csv
./2011_01_28_0345/15401408/MinAna.csv
./2010_08_20_0915/15401408/MinAna.csv
./2010_04_02_1408/15401408/MinAna.csv
./2011_02_18_0345/15401408/MinAna.csv
./2011_04_01_0345/15401408/MinAna.csv
./2008_10_03_1014/15401408/MinAna.csv
./2011_02_11_0345/15401408/MinAna.csv
./2010_09_17_0915/15401408/MinAna.csv
./2010_12_24_0345/15401408/MinAna.csv
./2008_10_31_1056/15401408/MinAna.csv
./2009_10_30_0910/15401408/MinAna.csv
./2011_03_04_0345/15401408/MinAna.csv
./2010_07_16_0915/15401408/MinAna.csv
./2010_07_09_0915/15401408/MinAna.csv
./2009_06_12_1133/15401408/MinAna.csv
./2009_12_18_0906/15401408/MinAna.csv
./2009_02_20_1050/15401408/MinAna.csv
./2009_10_23_0910/15401408/MinAna.csv
./2009_04_10_0900/15401408/MinAna.csv
./2009_06_19_0900/15401408/MinAna.csv
./2011_07_08_0345/15401408/MinAna.csv
./2008_10_03_1033/15401408/MinAna.csv
./2009_01_16_0922/15401408/MinAna.csv
./2010_11_26_0915/15401408/MinAna.csv
./2010_06_11_0915/15401408/MinAna.csv
./2009_02_17_1519/15401408/MinAna.csv
./2011_05_06_0345/15401408/MinAna.csv
./2009_05_07_1020/15401408/MinAna.csv
./2011_07_15_0345/15401408/MinAna.csv
./2010_01_15_0900/15401408/MinAna.csv
./2010_10_29_0915/15401408/MinAna.csv
./2008_09_26_1104/15401408/MinAna.csv
./2008_12_12_1002/15401408/MinAna.csv
./2009_02_27_0947/15401408/MinAna.csv
./2010_01_22_0920/15401408/MinAna.csv
./2010_12_17_0345/15401408/MinAna.csv
./2010_03_05_0900/15401408/MinAna.csv
./2010_11_12_0915/15401408/MinAna.csv
./2009_05_29_0900/15401408/MinAna.csv
./2009_09_25_0910/15401408/MinAna.csv
./2009_04_17_1056/15401408/MinAna.csv
./2009_12_11_0900/15401408/MinAna.csv
./2010_01_01_0900/15401408/MinAna.csv
./2010_04_23_0910/15401408/MinAna.csv
./2010_04_30_0915/15401408/MinAna.csv
./2008_10_03_0950/15401408/MinAna.csv
./2010_10_22_1845/15401408/MinAna.csv
./2009_05_22_0900/15401408/MinAna.csv
./2011_03_25_0345/15401408/MinAna.csv
./2008_10_10_0902/15401408/MinAna.csv
./2011_07_22_0345/15401408/MinAna.csv
./2010_09_03_0915/15401408/MinAna.csv
./2010_08_13_0915/15401408/MinAna.csv
./2010_12_10_0944/15401408/MinAna.csv
Une idée comment je pourrais regrouper tout cela ensemble ? (il n'y a pas besoin de les remettre dans l'ordre). Merci beaucoup d'avance, et bonne année tant qu'on y est.
Dernière modification par Miloose (Le 10/01/2012, à 17:00)
Hors ligne
#1514 Le 10/01/2012, à 17:17
- Bousky
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Voila comment je ferais (j'ai pas testé) pour concaténer tous les ./xxx/yyy/MinAna.csv dans yyy.csv :
for i in */*/MinAna.csv ; do
cat $i >> ${i:16:8}.csv
done
Il faut te mettre dans le bon dossier et que les yyy.csv soient vides ou inexistants au départ.
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#1515 Le 10/01/2012, à 17:19
- Rolinh
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Tu veux les classer par numéro de série et ensuite date? Parce que vu que tous les CSV ont le même nom...
Ou bien: dossier no de série et fichier date.csv ?
Dernière modification par Rolinh (Le 10/01/2012, à 17:20)
Hors ligne
#1516 Le 10/01/2012, à 17:38
- Miloose
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
J'aurais du être plus précis, désolé. Je dois mettre tous les fichiers avec le même numéro de série ensemble. Par exemple, tous les csv fichiers qui sont en-dessous de /yyyymmddhhmm/15401408/. Il y a chaque fois un seul fichier en-dessous de chaque dossier, mais pleins de dates différentes pour chaque numéro de série (voir l'exemple). On peut se baser sur le résultat de la commande find. Donc, si on regroupe tous les fichiers 15401408 ci-dessus, c'est bon pour moi.
Merci!
Hors ligne
#1517 Le 10/01/2012, à 18:11
- Bousky
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Mais tu veux les regrouper comment : les mettre dans un même dossier (auquel cas il faut renommer les fichier), les concaténer pour avoir un fichier par numéro de série (ce que fait ma proposition), … ?
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#1518 Le 10/01/2012, à 18:31
- Rolinh
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Je ne comprend pas non plus. Si tu les regroupes dans le même dossier et qu'ils ont tous le même nom, ça ne va pas aller!
Hors ligne
#1519 Le 10/01/2012, à 19:03
- Miloose
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Je dois regrouper tous les MinAna.csv qui se trouvent en-dessous d'un dossier 15401408 dans un seul fichier, tous ceux qui se trouvent en-dessous d'un dossier 15401409 dans un autre fichier,...
Le but est d'avoir toutes les données concernant la machine 15401408 dans un fichier, celles concernant la machine 15401409 dans un autre...
Si c'est toujours pas clair, j'explique la finalité du truc. Ce sont des données vibratoires d'éoliennes que je dois pouvoir importer dans un soft. J'ai reçu les données dans le format suivant:
/date/numero/MinAna.csv (date et numero sont des dossiers) ou MinAna.xls. J'ai déjà converti tous les xls en csv. J'ai donc environ 100 dossiers avec des dates différentes, en-dessous desquels j'ai chaque fois 25 sous-dossiers avec les numéros de série, et dans chaque sous-dossier j'ai un fichier de données.
Je dois donc aller chercher tous les fichiers MinAna.csv qui se rapportent à une éolienne (environ 100 par éolienne, 25 éoliennes) et les regrouper dans un seul fichier que je pourrai importer par après. C'est normalement un one-shot, donc si ce n'est pas entièrement automatique, c'est pas grave. Par exemple, si je dois insérer le numéro manuellement, c'est bon.
J'espère que cette fois j'ai été assez clair, et merci pour votre patience.
Hors ligne
#1520 Le 10/01/2012, à 19:08
- Bousky
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Je dois regrouper tous les MinAna.csv qui se trouvent en-dessous d'un dossier 15401408 dans un seul fichier, tous ceux qui se trouvent en-dessous d'un dossier 15401409 dans un autre fichier,...
Donc regarde mon post #1515.
Dernière modification par Bousky (Le 10/01/2012, à 19:08)
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#1521 Le 10/01/2012, à 20:14
- Miloose
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Waaaw, je suis impressionné...
Désolé d'avoir fait traîner en longueur, mais je n'étais plus sur mon PC pour essayer, et en suivant les posts sur mon smartphone, je pensais que ta proposition regroupait tout dans un seul fichier. J'aurais du mieux lire, et je devrais aussi avoir une deuxième vie pour apprendre le shell...
Me voilà maintenant avec mes 25 fichiers de 70 Mo chacuns, je vais pouvoir commencer les choses sérieuses. Un tout grand merci !
Hors ligne
#1522 Le 10/01/2012, à 22:56
- yamo
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Salut,
Waaaw, je suis impressionné...
Désolé d'avoir fait traîner en longueur, mais je n'étais plus sur mon PC pour essayer, et en suivant les posts sur mon smartphone, je pensais que ta proposition regroupait tout dans un seul fichier. J'aurais du mieux lire, et je devrais aussi avoir une deuxième vie pour apprendre le shell...
Me voilà maintenant avec mes 25 fichiers de 70 Mo chacuns, je vais pouvoir commencer les choses sérieuses. Un tout grand merci !
Peux tu donner un exemple de résultat de la commande ; je ne comprend pas du tout la commande : ${i:16:8}
Stéphane
--
Debian 9 XFCE Xubuntu 16.04.2 - #ubuntu sur freenode
sudo / matrix
Hors ligne
#1523 Le 10/01/2012, à 23:20
- Bousky
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Ça renvoie 8 caractères de $i en partant du 16ème (en comptant à partir de 0), ce qui correspond dans ce cas précis au numéro de série. Regarde ici (en anglais) ou tout simplement « man bash ».
Dernière modification par Bousky (Le 19/01/2012, à 22:15)
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#1524 Le 19/01/2012, à 19:56
- linuxienubuntiste
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Salut et désolé de vous interrompre ^^
J'aurai besoin d'aide pour un script simple mais je suis un brelle .
Juste pour installer un paquet i386 sur un machine 64bits
gksu dpkg -i --force-architecture [le paquet sélectionné]
Merci d'avance
Hors ligne
#1525 Le 20/01/2012, à 15:35
- creamy
Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)
Bonjour
J'ai une petite demande de script tout bête, mais qui me semble bien bien compliqué pour m'y aventurer.
J'aimerais (copier ?) le contenu de /var/log en tmpfs à chaque boot.
Puis à chaque arrêt, synchroniser le contenu du tmpfs pour écrire les modifs (création de dossier ou création de fichier) sur disque.
Sauf, les archives de logs. Avec vidage automatique du contenu des fichiers.
→ L'objectif est de supprimer la sollicitation du disque pour les logs.
Du coup je ne conserve que l’arborescence et les quelques fichiers attendus. Qui seront toujours vides sauf s'ils sont dans le tmpfs.
Lorsqu'un service attend un fichier de log, plutôt que planter bêtement, il le trouvera. Pourra l'utiliser. Et le retrouvera à chaque boot.
Je suis tombé sur ce sujet : https://forums.gentoo.org/viewtopic-t-3 … tmpfs.html et celui-ci https://bbs.archlinux.org/viewtopic.php?id=133823 mais je ne comprend foutrement rien si ça n'est que ça approche ce que je cherche à faire.
Je vois à peu près la procédure. Si je me plante pas ça serait :
Récupération du contenu de /var/log
Montage de /var/log en tmps
Déplacement en tmpfs de la liste.
-
Récupération de la liste issue du tmpfs
Démontage de /var/log
Synchro sur disque en ne conservant que des fichiers vides.
Auriez vous connaissance de quelque-chose d'existant ? Comment procéderiez vous ?
Est-ce que le script issu du forum Gentoo (messages de Cazzantonio) fais ça ?
D'avance merci pour vos idées, suggestions et votre aide
Le secret de l'action, c'est de commencer : http://www.le-message.org
Hors ligne