Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

7 réponses
Avatar
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 debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

7 réponses

Avatar
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
with a subject of "unsubscribe". Trouble? Contact
Avatar
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
with a subject of "unsubscribe". Trouble? Contact
Avatar
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
with a subject of "unsubscribe". Trouble? Contact
Avatar
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
with a subject of "unsubscribe". Trouble? Contact
Avatar
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
with a subject of "unsubscribe". Trouble? Contact
Avatar
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
with a subject of "unsubscribe". Trouble? Contact
Avatar
fra-duf-no-spam
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 res te 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 prog ramme
é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 t on
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 tranq uillement
ton fichier.

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