Debian 7.6 OpenVZ VPS требует полного использования диска, когда это ясно не верно

Вот одно решение (скопировать/вставить в Ваш терминал):

perl -pe 's/\n/xxx/g' file1 | sed 's/xxx@/\n@/g; s/xxx$/\n/' |
 grep -vFf file2 | sed 's/xxx/\n/g'

Объяснение

Там существует три отдельных команды, каждая из которых передает по каналу (|) его вывод к следующему. Первые два просто получают каждую запись на отдельной строке путем замены \n с xxx ( xxx именно так, мы можем знать, где разрывы строки). Если Вы выполняете их один, они делают:

$ perl -pe 's/\n/xxx/g' file1 | sed 's/xxx@/\n@/g; s/xxx$/\n/'
@D7MHBF:11:1449:1988  1:NxxxNGCCCATTCTATGCAACAAATTCAACAAAGTCTCCCAxxx+xxx#1=DDFFDFHHDHIGGFIIIIIIIHHIHIGDGIGGEH
@D7MHBF:11:1681:1959  1:NxxxNGGTTTAGAGCCTGTATTTTGAACGTAATAGCAGGGTxxx+xxx#1=ADDFFHHDDHEHIHJJJICCFHGEIGJGGGIJJF
@D7MHBF:11:1778:1946  1:NxxxNTGTGGGTTCAACAATGGGCTCATTGCCATCAGCGAGxxx+xxx#1=ADDFDHHGHFHGGIIJJJGIIJIFIIJJJIJIIJ
@D7MHBF:11:1854:1955  1:NxxxNTTGATTGTGCTTCTTATGAGCAAAAATGTTGATGACxxx+xxx#1=DFFFFHHHGHHIJEHIIGGGGIJJJJIHIIHIII
@D7MHBF:11:1903:1972  1:NxxxNACTACTATACTATGAAGTGGCTATGACAATTGTCTTxxx+xxx#1=DFFFFHHHGHHIJEHIIIGGGGIJJJJIHIIHII

Как Вы видите, теперь каждая запись находится на своей собственной строке. Так, можно теперь передать это grep и скажите этому печатать все строки, которые не делают (-v) соответствуйте любому из шаблонов, найденных в file2 (-f file2). Это печатает:

$ perl -pe 's/\n/xxx/g' file1 | sed 's/xxx@/\n@/g; s/xxx$/\n/' | grep -vFf file2  
@D7MHBF:11:1681:1959  1:NxxxNGGTTTAGAGCCTGTATTTTGAACGTAATAGCAGGGTxxx+xxx#1=ADDFFHHDDHEHIHJJJICCFHGEIGJGGGIJJF
@D7MHBF:11:1854:1955  1:NxxxNTTGATTGTGCTTCTTATGAGCAAAAATGTTGATGACxxx+xxx#1=DFFFFHHHGHHIJEHIIGGGGIJJJJIHIIHIII

Наконец, мы прокручиваем его sed снова, для замены xxx с новыми строками и получают желаемый вывод:

$ perl -pe 's/\n/xxx/g' file1 | sed 's/xxx@/\n@/g; s/xxx$/\n/' | 
    grep -vFf file2  | sed 's/xxx/\n/g' 
@D7MHBF:11:1681:1959  1:N
NGGTTTAGAGCCTGTATTTTGAACGTAATAGCAGGGT
+
#1=ADDFFHHDDHEHIHJJJICCFHGEIGJGGGIJJF
@D7MHBF:11:1854:1955  1:N
NTTGATTGTGCTTCTTATGAGCAAAAATGTTGATGAC
+
#1=DFFFFHHHGHHIJEHIIGGGGIJJJJIHIIHIII

2
25.09.2014, 16:15
2 ответа

Вероятно, некоторые файлы открыты процессами, поэтому их удаление еще не освободило место.

Итак, если вы удалили большой файл журнала или аналогичный, перезапустите процесс, который выполнял запись в этот файл.

Вы можете получить дополнительную информацию о том, какие файлы открыты, размер и какой процесс их использует, с помощью команды lsof .

1
27.01.2020, 22:13

Ваши inode, вероятно, израсходованы: проверьте использование inode: df -i

EDIT: также может быть, что дисковое пространство, выделенное виртуальной системе, составляет 10 ГБ, но базовая файловая система на хосте была перегружена, и теперь у виртуальных хостов не осталось места для совместного использования.

1
27.01.2020, 22:13

Теги

Похожие вопросы