|
|
|
|
Google Site
|
|||||||
| Φόρουμ | Εγγραφή | Ιστολόγιο | Man Σελίδες | Κανόνες Φόρουμ | Σύνδεσμοι | Λευκώματα | Συχνές ερωτήσεις | Χρήστες | Ημερολόγιο | Αναζήτηση | Η σημερινή Θέσεις | Mark Forums Read |
| Ο προγραμματισμός και η Shell Scripting Post ερωτήσεις για KSH, CSH, SH, BASH, Perl, PHP, sed, AWK ΑΛΛΑ και shell scripts και shell scripting γλώσσα εδώ. |
![]() |
|
|
Εργαλεία Θέματος | Αναζήτηση αυτό το νήμα | Βαθμολογήστε Νήμα | Display Modes |
|
|||
|
Αγαπητέ όλες,
Έχουμε ένα αρχείο καταγραφής το οποίο είναι γραμμένο σε μια διαδικασία με φόντο τρέχει συνεχώς. Αυτό logfile μέγεθος κρατά αυξάνεται με ταχείς ρυθμούς. Ενώ προσπαθεί να χειραγωγήσουν το αρχείο, θα διαγραφεί το αρχείο από τον κατάλογο. Όμως, η διαδικασία που διατηρούνται επί του εγγράφως στο αρχείο και ο χώρος κατάλογο πήρε γεμίσει. Σύμφωνα με inode έννοια, το αρχείο δεν αφαιρείται εντελώς μέχρι την τελευταία αναφορά στο inode πηγαίνουν. Η ερώτησή μου είναι πώς να ανιχνεύσει αυτές τις inodes που υπάρχουν ακόμη και μετά να τα αρχεία διαγράφονται, αλλά μια διαδικασία που εργάζεται σε αυτό. Παρακαλώ επιτρέψτε μου να ξέρω εάν δεν είμαι σαφής. |
| Sponsored Links | ||
|
|
|
|||
|
AFAIK θα πρέπει να σταματήσει η συνεχής διαδικασία και κάντε επανεκκίνηση. Διαφορετικά ο δίσκος θα γεμίσει.
Αν δεν υπάρχει κάποιο εμπόδιο στην πορεία για το αρχείο Κωδικός:
> path/to/file Θα περικόψτε το αρχείο, ενώ ακόμη και το καταγραφικό γράφει σε αυτό. Γι 'αυτό και δεν παίρνουν ό, τι άλλο χειρισμούς που θα πρέπει - ίσως "ουρά -10000> anotherfile" τις τελευταίες καταχωρήσεις εάν σας χρειάζονται. |
|
|||
|
chmod δεν έχει καμία επίδραση σε Περιγραφέας αρχείο που είναι ήδη ανοιχτό. Ο κώδικας θα κρατήσει εγγράφως στο αρχείο. Αυτό συμβαίνει επειδή τα δικαιώματα ελέγχου εμφανίζεται μόνο όταν η διαδικασία προσπαθεί πρώτα να ανοίξετε το αρχείο.
Κωδικός:
/* filetest.c will this keep writing after a chmod on the file mid-way? */
#include <stdio.h>
#include <stdlib.h>
#define ck(x)if((x)==1){perror("error on file");exit(EXIT_FAILURE);}
int main()
{
FILE *out=fopen("./myfile","w");
char tmp[32]={0x0};
int i=0;
for(i=0;i<1000;i++) ck(fprintf(out,"%d\n",i));
printf("We are pausing now... push <Enter> to continue.. ");
fgets(tmp,sizeof(tmp),stdin);
system("chmod 000 ./myfile");
for(i=0;i<1000;i++) ck(fprintf(out,"%d\n",i));
ck(fclose(out));
printf("exiting with no errors...\n");
return 0;
}
παραγωγή: Απόσπασμα:
|
| Sponsored Links | ||
|
|
![]() |
| Σελιδοδείκτες |
| Εργαλεία Θέματος | Αναζήτηση αυτό το νήμα |
| Display Modes | Βαθμολογήστε αυτό το νήμα |
|
|
Περισσότερα UNIX και Linux Forum Θέματα που μπορεί να σας Χρήσιμη
|
||||
| Νήμα | Thread Starter | Φόρουμ | Απαντήσεις | Τελευταίο μήνυμα |
| Inodes | nitin09 | Linux | 3 | 05-02-2008 08:12 AM |
| inodes | gfhgfnhhn | UNIX για Ανδρείκελα Ερωτήσεις & Απαντήσεις | 3 | 10-12-2006 03:12 AM |
| inodes | livemyway | Solaris | 1 | 01-24-2006 05:45 AM |
| inodes;;; | soliberus | Solaris | 1 | 07-14-2005 10:46 AM |
| INodes ... | boris888 | Αρχείων, δίσκων και μνήμης | 3 | 05-09-2002 11:21 AM |