df ලිනක්ස් හි ගොනු ඉවත් කිරීමෙන් පසු නිවැරදි ඉඩක් නොපෙන්වයි


158

මා සතුව ගොනු ගබඩා කිරීමට භාවිතා කරන ගොනු සේවාදායකයන් ඇත. ලිපිගොනු සතියක් හෝ අවුරුද්දක් එහි වාසය කළ හැකිය. අවාසනාවකට මෙන්, මම සේවාදායකයෙන් ලිපිගොනු ඉවත් කළ විට, dfවිධානය මඟින් නිදහස් කළ ඉඩ පිළිබිඹු නොවේ. ඉතින් අවසානයේදී, සේවාදායකය පිරී යයි ( df99% පෙන්වයි), මගේ ස්ක්‍රිප්ට් එකෙන් තවත් ලිපිගොනු එවන්නේ නැත.

noatimeසවිකර ඇති කොටස්වල යම් වෙනසක් සිදු වුවහොත් මට ධජය ලැබුණි .


මෙය සිදුවන්නේ තනි කොටසකද නැතහොත් සියලුම කොටස් වලද?
කලීඩ්

හොඳයි, එය සිදුවන්නේ මගේ ප්‍රධාන දත්ත කොටසෙහි වන අතර, එය මා සැලකිලිමත් වන එකම දෙයයි, මන්ද මම එයට ලිපිගොනු ලිවීම / ඉවත් කිරීම පමණි.

කරුණාකර විසඳුම හෝ මට සබැඳියක් ලබා දෙන්න.

කුමන ගොනු පද්ධති (ය)? ඩීඑෆ් විසින් සුපර් බ්ලොක්හි ප්‍ර stat ප්තියක් කරයි, සමහර විට ඔබේ ගොනු පද්ධතිය එස්බී ඉනෝඩය යාවත්කාලීන නොකිරීම විය හැකිය. ඔබ හැඹිලි හැඹිලිය උත්සාහ කර තිබේද?
බෝංචි

Ext4 භාවිතා කිරීම. ඔබ හැඹිලි ෆ්ලෂ් කරන්නේ කෙසේද?

Answers:


258

ගොනු නාමය මකා දැමීමෙන් ඇත්ත වශයෙන්ම ගොනුව මැකෙන්නේ නැත. වෙනත් ක්‍රියාවලියක් වන්නේ ගොනුව විවෘතව තබා ඇති අතර එය මකා නොදමනු ඇත; ගොනුව මුදා හැරීම සඳහා එම ක්‍රියාවලිය නැවත ආරම්භ කිරීම හෝ විනාශ කිරීම.

භාවිත

lsof +L1

මකාදැමූ (සම්බන්ධ නොවූ) ගොනුවක් භාවිතා කරන්නේ කුමන ක්‍රියාවලියදැයි සොයා ගැනීමට.


2
ඉවත් කරන ලද ලිපිගොනු මාසයකට වැඩි කාලයක් තුළ ප්‍රවේශ නොවූ අතර ඒවාට ප්‍රවේශ වන එකම ක්‍රියාවලිය nginx වේ, එබැවින් එය සැක සහිතය.

40
+1. එසේම, "lsof + L1" මඟින් ලිපිගොනු විවෘතව තබාගෙන සිටින්නේ කුමන වැඩසටහනෙන්දැයි ඔබට කියනු ඇත.
pehrs

4
root run "lsof -n | grep file" ලෙස, කුමන හේතුවක් නිසා හෝ ඒවා විවෘතව තබා ගැනීමේ ක්‍රියාවලිය හේතුවෙන් ගොනු කොපමණ කාලයක් රැඳී සිටිය හැකිද යන්න ගැන ඔබ පුදුමයට පත් වනු ඇත. අනෙක් සියල්ල අසමත් වුවහොත්, නැවත ආරම්භ කරන්න, මට එය යෝජනා කිරීම නරක යැයි හැඟේ, නමුත් එය නිසැකවම ගොනුවේ කිසිවක් රඳවා නොගන්නා බවට සහතික වනු ඇත. සෑම pehrs ටම, lsof + L1 යන්නට වඩා හොඳ ක්‍රමය විය හැකිය.
ස්කොට්ස්

3
ඔයා මාව බේරුවා! 93G ලොග් ගොනුවක් මකා දැමූ අතර අවකාශය නැවත ලබා නොගත් අතර එයට හේතුව සොයා ගැනීමට නොහැකි විය. ස්තූතියි.
ලූක් කසින්ස්

1
එකම රේඛාව ඔස්සේ සහ මෙය අන් අයට උදව් වුවහොත්, මට විශාල nginx access.log ගොනුවක් මකා දැමූ නමුත් අවකාශය නැවත ලබා ගත හැකි වූයේ nginx නැවත ආරම්භ කිරීමෙන් පසුව පමණි: service nginx restart
Nick

29

ඉග්නේෂියෝ සඳහන් කළ පරිදි, ගොනුවට එරෙහිව විවෘත හැසිරවීම් ඇති ක්‍රියාවලි මකා දමන තුරු ගොනුව මකා දැමීමෙන් අවකාශය නිදහස් නොවේ.

එසේ වුවද, ක්‍රියාවලි විනාශ නොකර ඔබට අවකාශය නැවත ලබා ගත හැකිය. ඔබ කළ යුත්තේ ගොනු විස්තර ඉවත් කිරීමයි.

පළමුව lsof | ගොනුව රඳවා තබා ගැනීමේ ක්‍රියාවලිය හඳුනා ගැනීම සඳහා grep මකා දමන ලදි

[hudson@opsynxvm0055 log]$ /usr/sbin/lsof |grep deleted
java       8859   hudson    1w      REG              253,0 3662503356    7578206 /crucible/data/current/var/log/fisheye.out (deleted)

ඉන්පසු ක්‍රියාත්මක කරන්න:

cd /proc/PID/fd

එවිට

[hudson@opsynxvm0055 fd]$ ls -l |grep deleted
total 0
l-wx------ 1 hudson devel 64 Feb  7 11:48 1 -> /crucible/data/current/var/log/fisheye.out (deleted)

"1" ගොනු විස්තර කරන්නා වනු ඇත. දැන් එම අවකාශය නැවත ලබා ගැනීමට "> FD" ටයිප් කරන්න

> 1

ගොනුව රඳවාගෙන වෙනත් ක්‍රියාදාමයන් තිබේ නම් ඔබට එම ක්‍රියාව නැවත කිරීමට අවශ්‍ය විය හැකිය.


1
මොකද කරන්නේ > FD?
FilBot3

එය ගොනු විස්තරය ඉවත් කරයි
ඇඩ්‍රියන් ඩෙකිකෝ

2
මෙම >විධානයට නමක් තිබේද? මට එය භාවිතා කිරීමට හැකිවන පරිදි zsh සිට bash වෙත මාරු විය. එය zsh මත ධාවනය කළ හැකිද?
ariera

1
එය ප්‍රතිදාන යළි-යොමුවීමක් වන අතර එම නිසා ගොනුව කපා දමයි. දිගු සිට "echo -n> 1" හෝ "true> 1" වනු ඇත. එය සැබවින්ම FD ඉවත් නොකරයි, එය හිස් ගොනුවකට පසුව යොමු කරයි.
eckes

8

එක් හැකියාවක් නම්, ඔබ මකා දැමූ ගොනුවට ගොනු පද්ධතියේ වැඩි සඳහනක් තිබීමයි. ඔබ දෘඩ සබැඳි නිර්මාණය කර ඇත්නම්, ගොනු නාම කිහිපයක් එකම දත්තයකට යොමු කරනු ඇති අතර, දත්ත (සත්‍ය අන්තර්ගතයන්) නිදහස් / භාවිතා කළ හැකි යැයි සලකුණු නොකරනු ඇත. ඔබ ලිපිගොනු මකා දැමීමට පෙර, ඒවා සංඛ්‍යා කරන්න (සබැඳි නම් කළ ප්‍රවේශය) හෝ ඒවා මත ls -l කරන්න (දෙවන තීරුව විය යුතුය).

ලිපිගොනු වෙනත් තැනක සඳහන් කර ඇති බව පෙනේ නම්, ඉනෝඩ් අංකය සොයා ගැනීම සඳහා ඔබට ls -i ගොනුව (ය) කළ යුතු යැයි මම සිතමි, ඉන්පසු -inum <inode-number> සමඟ සොයා ගන්න. එම ගොනුව පිළිබඳ වෙනත් යොමු කිරීම් (එකම ගොනු පද්ධතිය තුළම රැඳී සිටීමට ඔබට -mount භාවිතා කිරීමටද අවශ්‍ය වනු ඇත).


6

කොටස් තැටි අවකාශයේ යම් කොටසක් මූල භාවිතය සඳහා පමණක් වෙන් කර ඇති පරිදි වින්‍යාස කර තිබේ නම්, dfපවතින පරිදි මෙම අවකාශය ඇතුළත් නොවේ.

[root@server]# df -h
Filesystem            Size  Used Avail Use% Mounted on
...
/dev/optvol           625G  607G     0 100% /opt
...

ලිපිගොනු / නාමාවලි මකා දැමීමෙන් අවකාශය නැවත ලබා ගැනීමෙන් පසුව වුවද, මූල නොවන පරිශීලකයාට විශේෂිත කොටසකට ලිවීමට නොහැකි වනු ඇත.

Root සහ root නොවන පරිශීලකයෙකු ලෙස උපාංගයක ගොනුවක් සෑදීමට උත්සාහ කිරීමෙන් එය ඔබගේ තත්වය දැයි ඔබට පහසුවෙන් පරීක්ෂා කළ හැකිය.

ධාවනය කිරීමෙන් ඔබට ගොනු පද්ධති වින්‍යාසය පරීක්ෂා කළ හැකිය

tune2fs -l <device> | egrep "Block count|Reserved block count

සහ සත්‍ය වශයෙන්ම% ගණනය කිරීම.

මූල පමණක් භාවිතය සඳහා වෙන් කර ඇති තැටිය% වෙනස් කිරීමට, ක්‍රියාත්මක කරන්න

tune2fs -m <percentage> <device>

අදහස් දැක්වීමේදී කිසිවෙකු "ස්තූතියි" නොකිය යුතුය. මෙන්න මම එය එසේ වුවත්.
dr0i

4

එය විවෘත කිරීමේ ක්‍රියාවලිය මඟින් ගොනුව තවමත් අගුළු දමා ඇත. ඉඩ නිදහස් කිරීමට, මෙම පියවරයන් කරන්න:

  1. ධාවනය sudo lsof | grep deletedගොනුව පැවැත්වීම ලබන ක්රියාවලිය බලන්න. උදාහරණ ප්‍රති result ලය:

    $ sudo lsof | grep deleted
    COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF      NODE NAME
    cron     1623 root    5u   REG   0,21        0 395919638 /tmp/tmpfPagTZ4 (deleted)
    
  2. භාවිතයෙන් ක්‍රියාවලිය මරා දමන්න sudo kill -9 {PID}. ඉහත නියැදියේදී, PID 1623 වේ.

    $ sudo kill -9 1623
    
  3. dfඅවකාශය දැනටමත් නිදහස් වී ඇත්දැයි පරීක්ෂා කිරීමට ධාවනය කරන්න . එය තවමත් පිරී තිබේ නම්, සමහර විට ඔබට තත්පර කිහිපයක් බලා සිට නැවත පරීක්ෂා කිරීමට අවශ්‍ය වනු ඇත.


1

අනෙක් පිළිතුරු නිවැරදියි: ඔබ ගොනුවක් මකා දැමුවහොත් සහ ඉඩ නිදහස් නොවන්නේ නම්, එය සාමාන්‍යයෙන් එක්කෝ ගොනුව තවමත් විවෘතව තබා ඇති නිසා හෝ එයට වෙනත් දෘඩ සබැඳි ඇති බැවිනි.

දෝශ නිරාකරණය සඳහා උදව් කිරීමට, ධාවක අවකාශය වියදම් කරන්නේ කොතැනදැයි ඔබට පවසන මෙවලමක් භාවිතා කරන්න: duඅවකාශය යන්නේ කොතැනද යන්න පිළිබඳ දළ විශ්ලේෂණයක් ලබා ගැනීමට ඔබට භාවිතා කළ හැකිය. ඊටත් වඩා හොඳයි, වැරදිකරුවාව දඩයම් කිරීම සඳහා xdiskusage වැනි චිත්‍රක මෙවලමක් භාවිතා කරන්න (මේ වගේ බොහෝ දේ ඇත). xdiskusage සහ මිතුරන් ඔබට අවකාශය යන්නේ කොතැනදැයි සොයා ගැනීමට විශාලතම අභ්‍යවකාශ හොග් වෙතට යාමට ඉඩ දෙයි.

ඒ ආකාරයෙන්, දෙවන දෘඩ සබැඳියක් නිසා තවමත් අවකාශයේ ඇති ලිපිගොනු ඔබ ඉක්මනින් සොයා ගනු ඇත. මකාදැමූ, නමුත් විවෘත ලිපිගොනු වල ඉඩ ප්‍රමාණයක් ද එය පෙන්වනු ඇත (අවසරය ප්‍රතික්ෂේප කර ඇති පරිදි, එයට ගොනුවේ නම කියවිය නොහැකි බැවින්).


1

/varඑෆ්එස් හැකිලෙනු ඇතැයි අපේක්‍ෂා කරන ලිපිගොනු නැවත සකස් කිරීම සඳහා ඔබ ටොන් ගණනක් මෙය කරන බව මම දනිමි , නමුත් ඒ වෙනුවට එය වර්ධනය වේ, ඔබ සිස්ලොග් නැවත ආරම්භ කිරීමට සේවා සපයන බවට වග බලා ගන්න. හා

lsof -v file

කෙසේ හෝ මෙය ඔබට පෙන්වනු ඇත.


1
මෙය සැබවින්ම වැඩි යමක් එකතු නොකරයි; පිළිගත් පිළිතුර 2001 දී ඇති තර්කනය ආවරණය කරයි. ඔබට නියෝජිතයින් 50 ක් සිටින විට, පවතින පිළිතුරු වලට සුදුසුකම් එකතු කිරීමට අවශ්‍ය නම් අදහස් භාවිතා කරන්න.
බී

0

තවත් එක් විකල්පයක්: අඛණ්ඩව දත්ත නිර්මාණය කරන ක්‍රියාවලියක් නිසා තැටිය පිරී තිබිය හැකිය: ලොග්, හර සහ වෙනත් ය. අවකාශය සැබවින්ම නිදහස් වන නමුත් වහාම පුරවනු ලැබේ. මම ඇත්ත වශයෙන්ම එවැනි සිද්ධියක් දැක ඇත්තෙමි. dfමෙම අවස්ථාවේ දී සිදුරු පින්තූරය ලබා නොදේ. duවැඩිදුර ඉගෙනීමට භාවිතා කරන්න .


0

මම EXT2 භාවිතා කරමි, මෙම තත්වයේදී FSCK මට උදව් කළේය. Shudown -F දැන් උත්සාහ කරන්න, සමහර නැවත ආරම්භ කිරීම් සහ fscks වලින් පසුව, අඩක් භාවිතා කළ ඉඩ ප්‍රමාණයක් මට පෙනේ.


1
හිතවත් මාර්සෙලස්, ඔබේ විසඳුම පිළිගත් පිළිතුරෙන් සමන්විත වේ; ඔබට බල නොකෙරේ නම් සමහර විට නැවත පණගැන්වීමක් කිරීමට ඔබට අවශ්‍ය නොවනු ඇත ...
මුවන් දඩයක්කාරයා

0

ඔබට වින්ඩෝස් 10 ද්විත්ව ඇරඹුමක් තිබේ නම්, ඔබට වින්ඩෝස් 10 වෙත ආරම්භ කිරීමට උත්සාහ කළ හැකිය, පසුව තැටි පිරිසිදු කිරීම වෙත ගොස්, නිසි ධාවකය තෝරන්න, ඉන්පසු "පද්ධති ගොනු පිරිසිදු කරන්න" ක්ලික් කරන්න. මෙය මට වැඩ කළා. වාසනාව.


-1

කුමන මකාදැමූ ලිපිගොනු මතකය තිබේදැයි පරීක්ෂා කිරීමට විධානය ඇතුළත් කරන්න

 $ sudo lsof | grep deleted

එය මතකය රඳවා ඇති මකා දැමූ ගොනු පෙන්වනු ඇත.

ඉන්පසු ක්‍රියාවලිය පිඩ් හෝ නමකින් මරා දමන්න

$ sudo kill <pid>
$ df -h

දැන් පරීක්ෂා කරන්න ඔබට එකම මතකයක් ඇත

එසේ නොවේ නම්, කුමන ගොනුව මතකයේ රැඳෙන්නේ දැයි බැලීමට පහත විධානය ටයිප් කරන්න

# cd /
# du --threshold=(SIZE)

එළිපත්ත ප්‍රමාණයට වඩා ඉහළින් ඇති ලිපිගොනු පෙන්වන ඕනෑම ප්‍රමාණයක් සඳහන් කර මතකය රඳවා තබා ගන්නා ගොනුව මකන්න


-4

විවෘත පර්යන්තය මෙම විධානය උත්සාහ කරන්න df -Th ඊළඟට මෙම විධානය භාවිතා කරන්න sudo du -h --max-deep = 1 / මෙම විධානය තුළ ඔබට තැටි භාවිතය පිළිබඳ විස්තර සොයාගත හැකි අතර root පරිශීලකයා ගොනුව මකා දැමූ විට විවෘත කරන්න (root-local-share-trash) ඔබේ ගොනුව මකන්න

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.