[HS] Vider un fichier pendant qu'un prog ecrit dedans

2008-03-20 Par sujet GiGGz

Bonjour,

Désolé c'est hors sujet.
J'ai un programme qui calcul plein de truc et que j'ai lancé depuis 1 
semaine, je ne veux donc pas l'arreter, ni le faire planter. Ce 
programme écrit un fichier fort.68 (oui c'est codé en fortran). Ce 
fichier fait à ce jour 1,2 GO et mon home se réduit à vue d'oeil (d'où 
ma panique).


Comment faire pour vider ce fichier sans le détruire ? En effet j'ai 
essayé de faire une lien dont le nom était le nom du fichier et dont la 
cible était sur une autre partition, mais problème : la création du lien 
ne fut pas assez rapide, donc plantage du calcul (j'ai plusieurs calculs 
qui tournent). Après ce cuisant échec et la semaine de boulot perdu qui 
va avec, j'ai un peu peur de faire des bêtises, d'où ma démarche de 
venir ici vous demander...


Merci d'avance
Guillaume

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [HS] Vider un fichier pendant qu'un prog ecrit dedans

2008-03-20 Par sujet Guillaume
GiGGz a écrit :
 Bonjour,
 
Salut

 Désolé c'est hors sujet.
 J'ai un programme qui calcul plein de truc et que j'ai lancé depuis 1
 semaine, je ne veux donc pas l'arreter, ni le faire planter. Ce
 programme écrit un fichier fort.68 (oui c'est codé en fortran). Ce
 fichier fait à ce jour 1,2 GO et mon home se réduit à vue d'oeil (d'où
 ma panique).
 
arf ca arrive ! :-)

 Comment faire pour vider ce fichier sans le détruire ? En effet j'ai
 essayé de faire une lien dont le nom était le nom du fichier et dont la
 cible était sur une autre partition, mais problème : la création du lien
 ne fut pas assez rapide, donc plantage du calcul (j'ai plusieurs calculs
 qui tournent). Après ce cuisant échec et la semaine de boulot perdu qui
 va avec, j'ai un peu peur de faire des bêtises, d'où ma démarche de
 venir ici vous demander...
 
Quand je veux vider un fichier de log qui n'est pas relaché par une
application sans toucher à l'application en elle-même, je fais ca:
/var/log/pouet.log

et hop, le fichier est vide et tout le monde a l'air content.

 Merci d'avance
 Guillaume
 

De rien
Guillaume

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [HS] Vider un fichier pendant qu'un prog ecrit dedans

2008-03-20 Par sujet Jean-Michel OLTRA

Bonjour,


Le jeudi 20 mars 2008, GiGGz a écrit...


 Comment faire pour vider ce fichier sans le détruire ? En effet j'ai  
 essayé de faire une lien dont le nom était le nom du fichier et dont la  
 cible était sur une autre partition, mais problème : la création du lien 
 ne fut pas assez rapide, donc plantage du calcul (j'ai plusieurs calculs 
 qui tournent). Après ce cuisant échec et la semaine de boulot perdu qui  
 va avec, j'ai un peu peur de faire des bêtises, d'où ma démarche de  
 venir ici vous demander...

Tu ne peux pas stopper le programme en lui envoyant SIGSTOP, puis faire
un `echo   fichier`, puis envoyer SIGCONT sur le programme ?

-- 
jm

A.E.L. Sarl (R.C.S CASTRES 490843240)
http://www.spidboutic.fr


-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [HS] Vider un fichier pendant qu'un prog ecrit dedans

2008-03-20 Par sujet pascatgm

Guillaume a écrit :

GiGGz a écrit :
  

Bonjour,



Salut

  

Désolé c'est hors sujet.
J'ai un programme qui calcul plein de truc et que j'ai lancé depuis 1
semaine, je ne veux donc pas l'arreter, ni le faire planter. Ce
programme écrit un fichier fort.68 (oui c'est codé en fortran). Ce
fichier fait à ce jour 1,2 GO et mon home se réduit à vue d'oeil (d'où
ma panique).



arf ca arrive ! :-)

  

Comment faire pour vider ce fichier sans le détruire ? En effet j'ai
essayé de faire une lien dont le nom était le nom du fichier et dont la
cible était sur une autre partition, mais problème : la création du lien
ne fut pas assez rapide, donc plantage du calcul (j'ai plusieurs calculs
qui tournent). Après ce cuisant échec et la semaine de boulot perdu qui
va avec, j'ai un peu peur de faire des bêtises, d'où ma démarche de
venir ici vous demander...



Quand je veux vider un fichier de log qui n'est pas relaché par une
application sans toucher à l'application en elle-même, je fais ca:
  

/var/log/pouet.log



et hop, le fichier est vide et tout le monde a l'air content.
  

Alors là c'est vraiment de la magie... :)
Moi je ferais plutôt :
: /var/log/pouet
mais je dis ptet une bêtise...

P.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [HS] Vider un fichier pendant qu'un prog ecrit dedans

2008-03-20 Par sujet Guillaume
 Alors là c'est vraiment de la magie... :)
 Moi je ferais plutôt :
 : /var/log/pouet
 mais je dis ptet une bêtise...
 
 P.
 

LOL
on dirait que le  a été mangé par ceux de la réponse du client mail
ou alors, j'ai fourché ! :-)

Il faut bien sur: /var/log/pouet/log
moi, je mets pas de :

A plus
Guillaume

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [HS] Vider un fichier pendant qu'un prog ecrit dedans

2008-03-20 Par sujet GiGGz

Guillaume a écrit :

Alors là c'est vraiment de la magie... :)
Moi je ferais plutôt :
: /var/log/pouet
mais je dis ptet une bêtise...

P.



LOL
on dirait que le  a été mangé par ceux de la réponse du client mail
ou alors, j'ai fourché ! :-)

Il faut bien sur: /var/log/pouet/log
moi, je mets pas de :


:)
j'avais compris pour le . C'est assez étrange qd je teste la commande 
sur un fichier à part ça marche. Qd je tente sur mon fort.68 ça ne 
marche pas...comme s'il était protégé. bizarre.




A plus
Guillaume



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [HS] Vider un fichier pendant qu'un prog ecrit dedans

2008-03-20 Par sujet Guillaume
GiGGz a écrit :
 Guillaume a écrit :
 Alors là c'est vraiment de la magie... :)
 Moi je ferais plutôt :
 : /var/log/pouet
 mais je dis ptet une bêtise...

 P.


 LOL
 on dirait que le  a été mangé par ceux de la réponse du client
 mail
 ou alors, j'ai fourché ! :-)

 Il faut bien sur: /var/log/pouet/log
 moi, je mets pas de :
 
 :)
 j'avais compris pour le . C'est assez étrange qd je teste la commande
 sur un fichier à part ça marche. Qd je tente sur mon fort.68 ça ne
 marche pas...comme s'il était protégé. bizarre.
 
Etrange parce que cette technique fonctionne avec un fichier qui
n'est pas relaché par le programme avant le de quitter !

je peux pas t'aider la

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs From et
Reply-To:

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [HS] Vider un fichier pendant qu'un prog ecrit dedans

2008-03-20 Par sujet François TOURDE
Le 13958ième jour après Epoch,
GiGGz écrivait:

 Bonjour,

 Désolé c'est hors sujet.
 J'ai un programme qui calcul plein de truc et que j'ai lancé depuis 1
 semaine, je ne veux donc pas l'arreter, ni le faire planter. Ce
 programme écrit un fichier fort.68 (oui c'est codé en fortran). Ce
 fichier fait à ce jour 1,2 GO et mon home se réduit à vue d'oeil (d'où
 ma panique).

 Comment faire pour vider ce fichier sans le détruire ? En effet j'ai
 essayé de faire une lien dont le nom était le nom du fichier et dont
 la cible était sur une autre partition, mais problème : la création du
 lien ne fut pas assez rapide, donc plantage du calcul (j'ai plusieurs
 calculs qui tournent). Après ce cuisant échec et la semaine de boulot
 perdu qui va avec, j'ai un peu peur de faire des bêtises, d'où ma
 démarche de venir ici vous demander...

(alternative en fin de message, tu peux zapper tout le début si tu
veux)

Si mes souvenirs sont bons:

Tant que le fichier reste ouvert, tu vas avoir du mal... Petit
pré-requis: Une fois un fichier ouvert (en écriture ou en lecture),
seul son inode a une existance pour le programme. Ni son nom, ni le
répertoire dans lequel il se trouve n'a d'importance.

- Si tu fais un rm: Le fichier deviens invisible pour tout le monde,
  sauf pour ton programme qui écrit dedans, et pour ta partition. En
  gros, il bouffe de la place mais tu ne peux rien y faire.

- Si tu fais un mv: Deux options:
  - C'est sur la même partition: Pas de soucis, le n° d'inode reste le
même, ton fichier (et la partition associée) continue(nt) de
grossir
  - C'est sur une autre partition: Ça fait comme un cp puis un rm,
retour à la case départ.

- Si tu fais un : Là, c'est un peu plus compliqué. Si ton programme
  écrit en append, il se peut (a vérifier selon le fs et autres
  paramètres que je ne maîtrise plus depuis trop longtemps) que ton
  programme se remette à écrire depuis 0, donc tu as gagné (tout en
  ayant perdu le contenu). Si il n'écris pas en append, mais qu'il est
  en w seulement... je sais pas.

En gros, il serait préférable que tu modifie ton code fortran pour
qu'il referme de temps en temps le fichier, et si c'est pas possible
alors lance ton prog avec un pipe ou un named pipe, de façon à ce
que le second process (celui qui va effectivement écrire sur le
disque) accepte de faire un close/open de son fichier de sortie.

*ALTERNATIVE*

Pourquoi ne pas déplacer tout le reste et laisser le fichier
grossir? Tu crées des liens symboliques pour toutes les choses de ton
/home qui peuvent être déplacées, pour laisser grossir tranquillement
ton fichier.

En espérant n'avoir pas dit trop de conneries, et que ça puisse aider.