Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / место в файлсистеме не освобождается после удаления файлов. SUN Solaris / 12 сообщений из 12, страница 1 из 1
04.05.2011, 15:38
    #37245623
Bardis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
место в файлсистеме не освобождается после удаления файлов. SUN Solaris
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
oracle@adeoracs:/opt/oracle/DEOBWC [DEOBWC]# uname -a
SunOS adeoracs 5.10 Generic_127111-11 sun4u sparc SUNW,Sun-Fire-V890

oracle@adeoracs:/opt/oracle/DEOBWC [DEOBWC]# ls -ltr
total 2
drwxr-xr-x   2 root     root          96 Jan 22  2007 lost+found
drwxr-xr-x  12 oracle   dba         1024 Jan 30  2007 admin
oracle@adeoracs:/opt/oracle/DEOBWC [DEOBWC]# du -sk *
42153   admin
0       lost+foundoracle@adeoracs:/opt/oracle/DEOBWC [DEOBWC]# df -k .
Filesystem            kbytes    used   avail capacity  Mounted on
/dev/vx/dsk/oracsdg/ordeobwc
                     1048576  912111  128110    88%    /opt/oracle/DEOBWC

удаленные файлы были трейс файлами ORACLE. по всей видимости процессы которые эти файлы создали бегут еще и не освобождают дескрипторы. Как найти процессы держащие дескрипторы на определенные файлы. Когда-то видел как кто-то find в /proc/*/fd но не наю как точно. поможите.
...
Рейтинг: 0 / 0
04.05.2011, 16:04
    #37245714
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
место в файлсистеме не освобождается после удаления файлов. SUN Solaris
lsof
...
Рейтинг: 0 / 0
04.05.2011, 16:51
    #37245842
Мутаген
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
место в файлсистеме не освобождается после удаления файлов. SUN Solaris
Рестарт оралки поможет.
...
Рейтинг: 0 / 0
04.05.2011, 16:54
    #37245855
Bardis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
место в файлсистеме не освобождается после удаления файлов. SUN Solaris
коню понятно, что поможет. хотелось бы без рестарта. Eсть тут еще UNIX гуры, кто помoчь может. С lsofне работает, файлов нет уже в фйлесистеме.
...
Рейтинг: 0 / 0
04.05.2011, 17:30
    #37245958
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
место в файлсистеме не освобождается после удаления файлов. SUN Solaris
Bardisконю понятно, что поможет. хотелось бы без рестарта. Eсть тут еще UNIX гуры, кто помoчь может. С lsofне работает, файлов нет уже в фйлесистеме.

Код: plaintext
1.
2.
3.
4.
5.
6.
den@denzh:~> touch aaaa
den@denzh:~> tail -f aaaa &
[1] 4102
den@denzh:~> rm aaaa
den@denzh:~> lsof |grep aaaa
tail       4102              den    3r      REG        9,1        0    7088060 /home/den/aaaa (deleted)
...
Рейтинг: 0 / 0
04.05.2011, 17:34
    #37245972
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
место в файлсистеме не освобождается после удаления файлов. SUN Solaris
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
# ll /proc/4102/fd/*
lrwx------ 1 den users 64 May  4 17:29 /proc/4102/fd/0 -> /dev/pts/4
lrwx------ 1 den users 64 May  4 17:29 /proc/4102/fd/1 -> /dev/pts/4
lrwx------ 1 den users 64 May  4 17:29 /proc/4102/fd/2 -> /dev/pts/4
lr-x------ 1 den users 64 May  4 17:29 /proc/4102/fd/3 -> /home/den/aaaa (deleted)
lr-x------ 1 den users 64 May  4 17:29 /proc/4102/fd/4 -> anon_inode:inotify

убиваем содержимое файла
# >/proc/4102/fd/3

Но это в линуксе.
...
Рейтинг: 0 / 0
04.05.2011, 17:42
    #37245995
Bardis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
место в файлсистеме не освобождается после удаления файлов. SUN Solaris
в соларке я не вижу имена файлов:

oracle@adeoracs:/proc/132/fd []# ls -ltr
total 2054
-r--r--r-- 1 oracle dba 1003008 Sep 26 2008 20
c--------- 1 root sys 13, 12 Jul 24 2009 23
c--------- 1 root sys 13, 12 Jul 24 2009 17
c--------- 1 root sys 13, 12 Jul 24 2009 13
D--------- 1 root root 0 Jul 24 2009 21
-rw-r----- 1 oracle dba 24 Jun 29 2010 19
s--------- 0 root root 0 May 4 15:32 10
-rw-r----- 0 oracle dba 0 May 4 15:33 9
--w------- 1 oracle dba 256 May 4 15:33 12
--w------- 1 oracle dba 13313 May 4 15:33 5
-rw-rw---- 1 oracle dba 1544 May 4 15:33 8
-rw-rw---- 1 oracle dba 1544 May 4 15:33 18
c--------- 1 root sys 13, 2 May 4 15:42 7
c--------- 1 root sys 13, 2 May 4 15:42 6
c--------- 1 root sys 13, 2 May 4 15:42 4
c--------- 1 root sys 13, 2 May 4 15:42 3
c--------- 1 root sys 13, 2 May 4 15:42 22
c--------- 1 root sys 13, 2 May 4 15:42 2
c--------- 1 root sys 13, 2 May 4 15:42 16
c--------- 1 root sys 13, 2 May 4 15:42 15
c--------- 1 root sys 13, 2 May 4 15:42 14
c--------- 1 root sys 13, 2 May 4 15:42 11
c--------- 1 root sys 13, 2 May 4 15:42 1
c--------- 1 root sys 13, 2 May 4 15:42 0
...
Рейтинг: 0 / 0
05.05.2011, 01:39
    #37246474
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
место в файлсистеме не освобождается после удаления файлов. SUN Solaris
Bardis,

Код: plaintext
1.
# pfiles 132
Поможет связать /proc/<pid>fd/0 1 2 3 с именами файлов. Удаленный файл, правда, будет без имени.
...
Рейтинг: 0 / 0
05.05.2011, 12:59
    #37247140
pavlenko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
место в файлсистеме не освобождается после удаления файлов. SUN Solaris
Если файловая система небольшая то можно как-то так.
Если же файловая система большая и файлов в ней много, то всё будет несколько сложнее. Но если будет надо, обращайтесь. Где-то была программка, которая не делает find на каждый inode а следовательно и значительно более производительная.

#!/usr/bin/bash
#

if [[ -z "$1" ]]; then
echo "No filesystem"
exit 1
fi

FILESYSTEM=$1

device=`df -k | nawk -v fs=$FILESYSTEM ' $6 == fs { print $1 } '`

if [[ ! -b "$device" ]]; then
echo "No such filesystem or block device"
exit 1
fi

dev=`ls -al $device | awk ' { print $5$6 } '`

exec 3<&0
ps -e -o pid,comm | while read line; do
PID=`echo $line | awk ' { print $1 } '` ;
if [[ "$PID" = "PID" ]]; then
continue
fi
INODE=`pfiles $PID | nawk -v devid=$dev ' $4 ~ devid && $5 ~ /ino/ { print substr($5,5) } '`
if [[ -n "$INODE" ]]; then
echo "process: $line ";
for ino in $INODE; do
FILE=`find $FILESYSTEM -inum $ino -mount`
if [[ -z "$FILE" ]]; then
FILE="FILE DELETED"
fi
echo "inode $ino : $FILE"
done
fi
done
exec 0<&3
...
Рейтинг: 0 / 0
05.05.2011, 15:48
    #37247699
Bardis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
место в файлсистеме не освобождается после удаления файлов. SUN Solaris
Спасибо за попытку, но скрипт нужно доработать. Что Вы хотите получить с этим:

dev=`ls -al $device | awk ' { print $5$6 } '`


5120May
3072May
4011Feb
2391875072Apr
2392014336Apr
5120Mar
3072Mar
1024Feb
1024Mar
1024May
1024Apr
1024Feb
1024Mar
1024Mar
1024Jul
2048Mar
1024Mar
736May
170Mar
2802May
2850May
2761May
2841May
2704May
2744May
2802May
1320Jun
1320Jun
1301Jun
1282Jul
80Feb
1024Mar
2938Jul
1576Jun
1024Apr
1024Jul
...
Рейтинг: 0 / 0
05.05.2011, 18:50
    #37248234
pavlenko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
место в файлсистеме не освобождается после удаления файлов. SUN Solaris
Bardis,

Да вы правы. Скрипт писался давно и похоже применим только для файловых систем на томах veritas.
В случае если это metadevice или же просто /dev/dsk/c*t*d*s* то тогжа это не само блочное устройство а симлинк на блочное устройство.
Тогда надо выполнять эту команду непосредственно для блочных устройств.
А найти хочу major и minor номера устройства.
...
Рейтинг: 0 / 0
05.05.2011, 19:24
    #37248282
Мутаген
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
место в файлсистеме не освобождается после удаления файлов. SUN Solaris
Чтоб lsof показывал файлы на vxfs, его надо собирать на системе с установленным vxfs.
Всё что в инетке лежит собрано без vxfs.
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / место в файлсистеме не освобождается после удаления файлов. SUN Solaris / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]