Skip to content


Удаление файлов, расширения которых не входят в заданный список

Есть задача – удалять из заданных директорий все файлы кроме тех, "расширения" которых входят в заданный список:

  • .mp3
  • .mp3_env
  • .mp3_dig
  • .mp2_env
  • .mp2_dig
  • .wav
  • .wav_env
  • .wav_dig

Сразу приношу свои извинения эстетам, которые скажут, что в UNIX-like OS нет понятия "расширение имени файла", и что это чисто DOS-овская терминология. Я понимаю, просто так проще было выразить мысль :)

#!/bin/bash
 
PREFIX=/var/spool/samba
SUBJ="Deleted files from $PREFIX at `/bin/hostname -s`"
TMP=/var/tmp/`basename $0`.$$
EMAIL=admin@somehost.com
# Base list of allowed extensions
EXTs="mp3 mp2 wav"
REGEX=".*\.\("
 
for i in $EXTs; do
  REGEX="${REGEX}${i}\|"
  REGEX="${REGEX}${i}_env\|"
  REGEX="${REGEX}${i}_dig\|"
done
 
# Trailing "|" deleting
REGEX=${REGEX/%|/}
# Trailing "\" deleting
REGEX=${REGEX/%\\/}
# Closing regex
REGEX="${REGEX}\)$"
# В результате получили такой regex:
# ".*\.\(mp3\|mp3_env\|mp3_dig\|mp2\|mp2_env\|mp2_dig\|wav\|wav_env\|wav_dig\)$"
 
for DIR in ${PREFIX}/dir1 ${PREFIX}/dir2; do
  find $DIR -type f ! -iregex "${REGEX}" -print0 | \
    /usr/bin/xargs --null -r stat --printf="|%n|\n" >> $TMP
  find $DIR -type f ! -iregex "${REGEX}" -print0 | \
    /usr/bin/xargs --null -r rm
done
 
if [ `/bin/cat $TMP | /usr/bin/wc -l` -gt 0 ]; then
  /bin/cat $TMP | /bin/mail -s "$SUBJ" $EMAIL -- -f robot@someserver.com
fi
 
[ -f $TMP ] && rm $TMP

Posted in *nix.

Tagged with , , , .


Избранное с bash.org.ru :)

Современный студент вместо подготовки к сессии ищет в сети красивый афоризм про пи%&#ц, чтобы поставить его в статус.

Пришла дочь с улицы, а с ней прибежал кот, покрутился пару секунд по кухне и обратно стал проситься.
Жена: Ну и чего это он приходил?
Дочь: Сейвился!

Продается книга "Огород без забот".
Подруга: "Огород без забот – это взял денег и пошел на рынок!"

xxx> А почему в компутере стол (desktop) покрывают обоями (wallpaper), а не скатертью?
yyy> Монитор вертикально — скатерть сползает.

zzz: Позвонили мне сегодня и говорят: "Нам выдали новый бачок, прийдите поменяйте". Я им – мол, я не занимаюсь бачками, вам к сантехнику. Через пару минут перезванивают, говорят, что сантехник этим не занимается, я в свою очередь, выходя из себя, сказал что я этим тоже не занимаюсь.
zzz: а час назад меня вызвал проректор и вставил пендюлей за то, что я отказался поменять лаборантке старый системник на новый!
zzz: сцуки, это ж нада системник бачком обозвать...

xxx: Чувак хочет переехать в Москву и там работать журналистом. Как ему лучше поступить чтоб с голода не умереть?
yyy: Не переезжать.

Posted in Развлекуха.

Tagged with .


Сброс пароля администратора в системе "ЛИГА-Закон"

Чтобы сбросить пароль администратора в системе Liga, нужно в директории
c:\program files\liga70\data удалить файлы ubd.dat и ubd.idx.

При этом вся информация о пользователях системы будет утрачена, а вход в учетную запись "Администратор" будет возможен с пустым паролем.

Информация получена от технической поддержки Liga.

Posted in Windows.


Сброс пароля администратора в Windows XP/2003

– Кто такой фармацевт?
– Это тот, кто частенько форматирует диск С:\

Представим себе ситуацию, когда нам в админское хозяйство "по наследству" достается неизвестно кем построенный и неизвестно кем поддерживаемый в прошлом сервер с Windows XP или Windows 2003, пароля администратора от которого мы, конечно же, не знаем. И на сервере крутится архиважная софтина, которая нужна всей конторе, поэтому просто взять и переставить заново винду нельзя (да и не хочется, учитывая весь последующий головняк с поиском и установкой драйверов, настройкой софта, тюнингом и т.д.). Вот тогда нам и пригодится описанный ниже способ сброса / замены пароля администратора.

1. Качаем замечательную тулзу – Offline NT Password & Registry Editor.
2. Записываем скачанный iso-образ на диск, грузимся с него.
3. Следуем инструкциям программы (нужно будет указать путь к файлам реестра, они лежат в директории %windir%\system32\config).

Можно как сбросить пароль, так и поменять его на новый (при этом знать старый, естественно, не нужно).

Если винда была установлена на RAID-массив и Offline NT Password & Registry Editor не видит этот RAID-массив, то в качестве обходного маневра можно сделать так.

1. Добавить в сервер дополнительный винчестер, поставить на него другую винду №2, загрузиться в нее.
2. Найти и установить драйвера для RAID-массива, добиться видимости из винды №2 раздела с виндой №1.
3. Скопировать из винды №1 содержимое директории %windir%\system32\config и положить его куда-то, где Offline NT Password & Registry Editor сможет его найти.
4. Пропатчить файлы тулзой.
5. Положить пропатченные файлы на место в %windir%\system32\config винды №1.
6. Загрузиться в винду №1 и наслаждаться возможностью входа под учетной записью администратора :)

В моем случае изменения были замечены только в файле с именем SAM.


Перед использованием настоятельно рекомендую ознакомиться с документацией на сайте автора.

А напоследок немного жизненных случаев с паролями :)

"Sorry, your password has been in use for 30 days and has expired — you must register a new one."
roses
"Sorry, too few characters."
pretty roses
"Sorry, you must use at least one numerical character."
1 pretty rose
"Sorry, you cannot use blank spaces."
1prettyrose
"Sorry, you must use at least 10 different characters."
1fuckingprettyrose
"Sorry, you must use at least one upper case character."
1FUCKINGprettyrose
"Sorry, you cannot use more than one upper case character consecutively."
1FuckingPrettyRose
"Sorry, you must use no fewer than 20 total characters."
1FuckingPrettyRoseShovedUpYourAssIfYouDon'tGiveMeAccessRightFuckingNow!
"Sorry, you cannot use punctuation."
1FuckingPrettyRoseShovedUpYourAssIfYouDontGiveMeAccessRightFuckingNow
"Sorry, that password is already in use."

Posted in Windows.

Tagged with .