linux

Как удалить из очереди postfix письма с определённого домена

Для домена-отправителя error.domain.ru команда будет выглядеть так:
mailq|awk ' /^[0-9A-F][0-9A-F]*.*error.domain.ru$/ {print $1}'|tr -d '*'| xargs -rn1 postsuper -d
Должно сработать в linux, с MTA postfix.

Изменение AP_DOC_ROOT с /var/www на /home в suexec Apache 2, CentOS

По-умолчанию у suexec DOC_ROOT в CentOS (и других дистрибутивах) установлен /var/www, что не позволяет apache запускать скрипты с других мест (например, /home).

Единственный нормальный вариант сделать это в linux - перекомпилировать suexec с новыми настройками.
Команды приведены для Centos 6.0. В принципе инструкция подойдёт для других версий linux, с небольшими поправками.

Поиск (find) файлов в unix, созданных/модифицированных в интервале дат/времени

Используем в консоли touch и find
1) создаём файлы, с требуемым временем:
date1 будет началом интервала, date2 - конец

touch -d "Nov 21 18:10 2010" /tmp/date1
touch -d "Nov 21 20:15 2010" /tmp/date2

2) ищем и выводим список с датой создания
find . -type f \( -newer /tmp/date1 -a -not -newer /tmp/date2 \) | xargs ls -l

Пример ищет в текущей папке (.) файлы в интервале Nov 21 18:10 2010 - Nov 21 20:15 2010 и выводит список найденных файлов с датами (ls -l)

Как очистить кэш (cache) в linux

Или как перегнать память из cache во free :)
Зачем вам это надо - думайте сами. Обычно необходимости в сбросе кэша нет, т.к. при нормальном режиме работы система сначала возьмёт память из кэша, прежде чем перейти в swap.

Данная статья предназначена специалистам, которые знают что делают.

Начиная с версии ядра Linux 2.6.16 есть механизм для сброса "page cache" и/или inode и dentry:

Сбросить pagecache
# echo 1 > /proc/sys/vm/drop_caches

Сбросить кэш dentries и inodes
# echo 2 > /proc/sys/vm/drop_caches

Сбросить pagecache, dentries и inodes
# echo 3 > /proc/sys/vm/drop_caches

Эта операция безопасна и очищает только то, что совершенно не используется. "Грязные" объекты не будут затронуты.

Метки:

Поиск и замена текста на новый во многих файлах в unix

Команда найдёт все файлы в текущем каталоге и подкаталогах, содержащие OLD_TEXT и заменит строку "OLD_TEXT" на "NEW_TEXT":
grep -HR OLDTEXT ./ | awk '{print $1}' | sed 's/:.*$//' | grep -v '~' | sort | uniq | xargs perl -i -pe "s/OLD_TEXT/NEW_TEXT/g;"
Учитывайте, что текст указан в выражении, если в вашем OLD_TEXT встречаются спец.символы - их нужно экранировать \
Для работы команды кроме gnu utils нужен perl.

Метки:

Как удалить дубликаты файлов в unix

Недавно решал такую задачу, используемые shell-скрипты нестабильны, зависят от платформы и довольно сложны.

Утилита fdupes подходит идеально, одинаково работает на freebsd и linux, внятный синтаксис.

Установка fdupes для freebsd:
cd /usr/ports/sysutils/fdupes
make install

Типовое использование. Удаление файлов в текущей директории.
fdupes -dN .
Расшифровка:
-d удаление
-N без подтверждения (останется только первый найденный файл из дублируемых)
. - директория (текущая)

Другие особенности - в хелпе и гугле :)