Удаление каталога с файлами-хардлинками

Пытался на Windows 8.1 удалить каталог, в котором полтысячи подкаталогов и в каждом по несколько файлов (или десятков файлов), которые являются хардлинками. Система на любой файл упорно выдавала ошибку, что файл не найден и Error Code 0x80070490 (Element not found). Единственный вариант, который реально удалял такие файлы, был Far, но удалять каждый файл по одному (сначала удалять хард линк, потом файл), мягко говоря, перспектива не хорошая. Удалить хардлинк из одного файла можно командой:

fsutil reparsepoint delete filename.ext

Затем удалить сам файл. Но это тоже нереально. Поэтому можно использовать рекурсивный цикл:

For /R %i in (*.*) do fsutil reparsepoint delete "%i"

После этого можно удалять каталоги прямо с файлами. К сожалению, такой вариант не удаляет ссылки у скрытых файлов, но тоже неплохо, удалось все удалить.


Теги: , , , , , , ,

Оповещение о логине в ssh

В блоге itblog.suпопалась заметка об оповещении по почте о входе в консоль.

echo ‘ALERT — Root Shell Access on:’ `date` `who` | mail -s «Alert: Root Access from `who | awk ‘{print $6}’`» user@dom.dom

Вспомнил, что у меня давно используется такая штука. Ну, мало ли, вдруг найдется мегахацкер, который взломает сервер =). Только у меня немного не так:

echo «ALERT — Root Shell Access on: `date; echo; who | bwtail -1`» | mail -s «Root From: `who | bwtail -1`» root@domain.com

who может вывалить пакаван данных о логинах, но они мне не нужны, т.к. замысел в оповещении о последнем логине, поэтому я отрезаю одну строку с помощью tail.

Что такое bwtail? =) Это черно-белая версия tail (по сути просто хардлинк на tail), который у меня сделан цветным:

# from .cshrc
alias tail      /root/bin/coloredtail.sh

Вот так:

~> cat /root/bin/coloredtail.sh
#!/bin/sh

/usr/bin/tail $@ | /usr/local/bin/colorize


Теги: , , , , , , , , , , , , , ,