vanoc.ru

Заметки

Архив категории ‘linux’

разные значения du и df

Комментариев нет

Закончилось место в /var, cron начал ругаться и сыпать на почту алармы. Смотрю df -h место занято на 99%. Делаю du -hs /var места свободного как минимум 50%.

$ lsof | grep deleted
cmasm2d 3291 root 1w REG 253,1 476834734 82306 /var/spool/compaq/cma.log.1 (deleted)

и таких строк очень много.

Я нашел два способа очистить место. Перезапустить процесс держащий удаленные файлы на привязи (так я поступил с заббикс агентом) или сделать размер файла чуток поменьше.

$ ls -l /proc/3291/fd/
итого 0
lr-x------ 1 root root 64 Авг 28 12:16 0 -> /dev/null
l-wx------ 1 root root 64 Авг 28 12:16 1 -> /var/spool/compaq/cma.log.1 (deleted)
l-wx------ 1 root root 64 Авг 28 12:16 2 -> /var/spool/compaq/cma.log.1 (deleted)
lrwx------ 1 root root 64 Авг 28 12:16 3 -> /dev/hpilo/d0ccb6

cat /dev/null > /proc/3291/fd/1

Файл останется открытым, но размер у него будет 0 байт

Теперь df -h покажет более приятную глазу картинку.

Если есть еще варианты решения, буду благодарен.

Почему вообще du и df показывают разный объем доступного дискового пространства?

Вам нужно разобраться, что на самом деле делают команды du и df. du проходит по дереву каталогов, замеряя, насколько большой объем занимает каждый файл, и выдает общий объем. df просто запрашивает файловую систему об оставшемся объеме. Это выглядит как одно и то же, однако файл без записи в каталоге затронет df, но не повлияет на du.

Когда программа использует файл, а вы его удалили, файл на самом деле не удаляется из файловой системы, пока программа не прекратит его использовать. Однако файл тут же удаляется из списка каталога. Вы можете легко это видеть при помощи такой программы, как more. Предположим, что у вас имеется файл, настолько большой, что его присутствие влияет на вывод команд du и df. (Так как в настоящее время диски могут быть настолько большими, это может быть очень большой файл!) Если вы удалите этот файл в процессе работы more над ним, на команду more это не повлияет и она не сообщит, что не может просматривать файл. Запись о файле просто удалена из каталога, так что другие программы или пользователи не смогут к нему обратиться. du покажет, что файл исчез — она просматривает дерево каталогов, а файла там не будет. df показывает, что он все еще здесь, так как файловая система знает, что more все еще использует это пространство. Как только вы закончите работу с more, команды du и df придут в соответствие.

http://www.freebsd.org/doc/ru_RU.KOI8-R/books/faq/disks.html#idp77037104

28th Август 2013 ~ 13:50


Рубрики linux,runix

Метки , ,

openfire добавить или удалить админский аккаунт

Комментариев нет

Так получилось, что на новой работе, ввиду того, что админы с какой-то периодичностью сменялись, оказался сервер с древним openfire, от которого никто не знал пароль. Работает, ну и пусть себе дальше работает. А у меня же руки чешутся, вот и решил поиметь таки на него доступ.
Все оказалось не очень сложно.

Открываем конфиг файл (аккуратно, кто не знаком с vim, может использовать nano)
vim /opt/openfire/conf/openfire.xml
добавляем выделенные жирным строки

<!-- root element, all properties must be under this element -->
<jive>
<admin>
<authorizedJIDs>admin@example.com, new@example.com</authorizedJIDs>
</admin>
<adminConsole>
<!-- Disable either port by setting the value to -1 -->
<port>9090</port>
<securePort>9091</securePort>
</adminConsole>

Перезапускаем openfire
service openfire restart

23rd Август 2013 ~ 15:57


Рубрики linux

Метки ,

vim: закомментировать часть кода

Один комментарий

Не часто, но тем не менее приходится пользоваться визуальным режимом vim. В виду куриной памяти заметка.

Дабы быстро закомментировать определенный кусок кода в vim:

Ctrl+v
выделяем строки
Shift+i
вставляем #
жмем Esc

11th Апрель 2013 ~ 1:49


Рубрики linux

Метки

Systemd имена сетевых интерфейсов

Комментариев нет

В связи с переходом на systemd имена сетевых интерфейсов теперь генерируются для каждого устройства индивидуально. Они постоянны и не меняются, даже если несколько сетевух.

Вернуть привычные eth0 и wlan0 можно так:

sudo ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules

Более подробно, а так же о преимуществах здесь freedesktop.org

12th Февраль 2013 ~ 22:15


Рубрики arch,linux,runix

Метки

sshfs

Комментариев нет

На собеседовании встал вопрос монтирования директории удаленного сервера и тут я попал в просак. Ну что ж, исправляемся.

SSHFS (Secure SHell FileSystem) это файловая система для Linux (и других операционных систем, для которых существует реализация FUSE (Filesystem in Userspace), например Mac OS X), используемая для удаленного управления файлами по протоколу SSH (точнее, его расширению SFTP) таким образом, как будто они находятся на локальном компьютере. (Википедия)

Установим sshfs
sudo pacman -S sshfs

Монтирование
sshfs user@remotehost:/path/to/directory /local/path

Отмонтируем
fusermount -u /local/path

4th Декабрь 2012 ~ 16:33


Рубрики linux

Метки ,

My traceroute

2 комментария

Недавно познакомился с утилитой mtr. My traceroute сочетает в себе одновременно ping и traceroute.

mtr ya.ru

15th Июнь 2012 ~ 23:26


Рубрики linux

Метки

ncdu статистика использования диска

Комментариев нет

Консольный аналог статистики использования диска kdusader-a и т.п. Простая и удобная утилита. IMHO придется по вкусу тем, кому недостаточно дефолтного du.
Понравилось возможность выводить информацию по определенным разделам.
sudo ncdu -x /

Утилита умеет удалять, пересчитывать, сортировать и прочее. Полная информация в man и shift+? в программе.

19th Январь 2012 ~ 0:09


Рубрики linux,runix

Метки

Redmine

Комментариев нет

Некоторые ошибки, с которыми столкнулся.

1.
$ rake generate_session_store
WARNING: 'require 'rake/rdoctask'' is deprecated. Please use 'require 'rdoc/task' (in RDoc 2.4.2+)' instead.
at /usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/rdoctask.rb

Лечится установкой rdoc
sudo gem install rdoc
и редактированием Rakefile файла
Меняем
require 'rake/rdoctask'
на
require 'rdoc/task'

2.
WARNING: 'task :t, arg, :needs => [deps]' is deprecated. Please use 'task :t, [args] => [deps]' instead.
at /home/vanoc/www/redmine-1.2/lib/tasks/email.rake:170

Редактируем opt/redmine/lib/tasks/email.rake строка 170
Меняем
task :test, :login, :needs => :environment do |task, args|
на
task :test, [:login, :needs] => [ :environment] do |task, args|

3.
$ RAILS_ENV=production rake db:migrate
rake aborted!
undefined method `name' for "actionmailer":String

Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)

Решение
sudo gem update --system 1.6.2
sudo gem uninstall rake -v=0.9.2.2
sudo gem install rake -v=0.8.7

4.
$ rake db:migrate RAILS_ENV="production"
(in /home/vanoc/www/redmine-1.2)
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
no such file to load -- mysql

(See full trace by running task with --trace)

Устанавливаем
sudo aptitude install libmysqlclient-dev
sudo gem install mysql

10th Ноябрь 2011 ~ 19:56


Рубрики linux

Метки

Узнать ip по pid-у

Один комментарий

sudo netstat -anp | grep 30979
tcp        0      0 192.168.10.5:3050       192.168.10.121:1063      ESTABLISHED 30979/fb_inet_server

1st Ноябрь 2011 ~ 18:41


Рубрики linux

Метки , ,

mysqldump crontab

5 комментариев

В связи со взломами блога озадачился созданием бэкапов

01 03 */2 * * mysqldump -hlocalhost -uname -ppassword database > /home/name/backup/`date +\%Y-\%m-\%d`-database.sql
10 03 */2 * * find /home/name/backup/ -name "*.sql" -mtime +10 -delete

29th Сентябрь 2011 ~ 8:58


Рубрики linux,блог

Метки , ,