Решил показать пару своих скриптов. Возможно они будут полезны не только мне.
MAKEISO
Описание:
Создает образ диска (iso-level 3) + создает файл md5 сумм
Как работает:
Есть папка с проектами (будущими образами). В моем случае это "/all/BURN/BURNTEMP/".
Каждый каталог - отдельный проект
Перед созданием образа проверяются права доступа
Затем создается файл .md5sum.md5 и помещается в папку проекта (Можно отключить)
Ну и непосредственно создается образ, который помещается в папку с образами. В моем случае это "/all/BURN/TEMPISO/". Имя каталога проекта будет использоваться как метка диска.
После записи проверить можно простым md5sum -c ./.md5sum.md5 в корне смонтированного диска
Писал его довольно давно, да и не мастер я в программировании как таковом. Посему прошу сильно не пинать )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365
|
#!/bin/bash
############################## ## VERSION - 1.0 ## DATE - 10,02,10 ##############################
########## # Папка с проектами projektsfolder="/all/BURN/BURNTEMP/"
# Папка для хранения образов isofolder="/all/BURN/TEMPISO/"
# Результат проверки файла образа isofiletest="error"
# Число файлов к которым нет прав доступа #errorline="0" ##########
if < -e "/usr/bin/mkisofs" > then echo; echo "Программа \"mkisofs\" установлена" else echo; echo "ОШИБКА!!! Программа \"mkisofs\" не установлена"; exit fi
if < -e "/usr/bin/md5deep" > then echo; echo "Программа \"md5deep\" установлена" else echo; echo "ОШИБКА!!! Программа \"md5deep\" не установлена"; exit fi
if < -e "/usr/bin/tee" > then echo; echo "Программа \"tee\" установлена" else echo; echo "ОШИБКА!!! Программа \"tee\" не установлена"; exit fi
while < "$isofiletest" != "ok" > do echo echo "Введите имя папки с файлами для создания образа диска" echo -n "- " read burnfolder
if < -z "$burnfolder" > then echo; echo "ОШИБКА!!! Введено пустое значение" continue fi
if < ! -d "$projektsfolder$burnfolder" > then echo; echo "ОШИБКА!!! Директория \""$burnfolder"\" не существует" continue fi
if < ! -r "$projektsfolder$burnfolder" > then echo; echo "ОШИБКА!!! Недостаточно прав для чтения директории \""$burnfolder"\"" continue fi
if < `dir -A -C1 "$projektsfolder$burnfolder" | wc -l` = 0 > then echo; echo "ОШИБКА!!! Директории \""$burnfolder"\" пуста" continue fi
if < ! -d "$isofolder" > then echo; echo "ОШИБКА!!! Директория \""$isofolder"\" не существует" continue fi
if < ! -r "$isofolder" > then echo; echo "ОШИБКА!!! Недостаточно прав для чтения директории \""$isofolder"\"" continue fi
if < -e "$isofolder$burnfolder.iso" > then while < "$otvet1" != 1 > && < "$otvet1" != 2 > do echo echo "Образ диска \""$burnfolder.iso"\" уже существует." echo "Хотите его удалить?" echo "1 - Да" echo "2 - Нет" echo "Введите номер ответа" echo -n "- " read otvet1
if < "$otvet1" != 1 > && < "$otvet1" != 2 > then echo; echo "ОШИБКА!!! НЕВЕРНЫЙ ОТВЕТ" fi done
if < "$otvet1" = 1 > then if < -w "$isofolder$burnfolder.iso" > then if rm -v "$isofolder$burnfolder.iso" then echo; echo "Старый образ диска \""$burnfolder.iso"\" удален" else echo; echo "ОШИБКА!!! Не удалось удалить старый образ диска \""$burnfolder.iso"\"" continue fi else echo; echo "ОШИБКА!!! Недостаточно прав для удаления старого образа диска \""$burnfolder.iso"\"" continue fi else continue fi fi
if < ! -w "$isofolder" > then echo; echo "ОШИБКА!!! Недостаточно прав для записи образа диска в папку \""$isofolder"\"" continue fi
if < -d "/tmp/" > then if < -w "/tmp/" > then if < -e "/tmp/tempfileslist.txt" > then if < -w "/tmp/tempfileslist.txt" > then if rm -v "/tmp/tempfileslist.txt" then echo; echo "Файл \""/tmp/tempfileslist.txt"\" успешно удален" else echo; echo "ОШИБКА!!! Не удалось удалить файл \""/tmp/tempfileslist.txt"\"" continue fi else echo; echo "ОШИБКА!!! Недостаточно прав для удаления файла \""/tmp/tempfileslist.txt"\"" continue fi fi else echo; echo "ОШИБКА!!! Недостаточно прав для записи в директорию \""tmp"\"" continue fi else echo; echo "ОШИБКА!!! Директория \""tmp"\" не существует" continue fi
if < -e "/tmp/errortempfileslist.txt" > then if < -w "/tmp/errortempfileslist.txt" > then if rm -v "/tmp/errortempfileslist.txt" then echo; echo "Файл \""/tmp/errortempfileslist.txt"\" успешно удален" else echo; echo "ОШИБКА!!! Не удалось удалить файл \""/tmp/errortempfileslist.txt"\"" continue fi else echo; echo "ОШИБКА!!! Недостаточно прав для удаления файла \""/tmp/errortempfileslist.txt"\"" continue fi fi
while < "$errorline" != 0 > do if find "$projektsfolder$burnfolder" > "/tmp/tempfileslist.txt" then errorline="0"
echo
while read line do if < -r "$line" > then echo "$line - OK" else echo "$line - ERROR !!!" | tee -a "/tmp/errortempfileslist.txt" | cat let "errorline += 1" fi done < "/tmp/tempfileslist.txt"
echo
if rm -v "/tmp/tempfileslist.txt" then echo; echo "Временный файл \""/tmp/tempfileslist.txt"\" успешно удален" else echo; echo "ОШИБКА!!! Временный файл \""/tmp/tempfileslist.txt"\" не удален. Вы можете сделать это вручную" fi
if < "$errorline" -gt 0 > then while < "$otvet4" != 1 > && < "$otvet4" != 2 > do echo echo "ОШИБКА!!! У вас нет прав для чтения "$errorline" файлов в каталоге \""$projektsfolder$burnfolder"\"" echo "Вывести список этих файлов?" echo "1 - Да" echo "2 - Нет" echo "Введите номер ответа" echo -n "- " read otvet4
if < "$otvet4" != 1 > && < "$otvet4" != 2 > then echo; echo "ОШИБКА!!! НЕВЕРНЫЙ ОТВЕТ" continue fi
if < "$otvet4" = 1 > then cat "/tmp/errortempfileslist.txt" fi done
while < "$otvet5" != 1 > && < "$otvet5" != 2 > do echo echo "Повторить проверку прав доступа?" echo "1 - Да" echo "2 - Нет" echo "Введите номер ответа" echo -n "- " read otvet4
if < "$otvet5" != 1 > && < "$otvet5" != 2 > then echo; echo "ОШИБКА!!! НЕВЕРНЫЙ ОТВЕТ" continue fi
if < "$otvet5" = 1 > then continue 2 fi
if < "$otvet5" = 2 > then break fi done fi else echo; echo "ОШИБКА!!! Ошибка при создании списка фалов для записи \""/tmp/tempfileslist.txt"\"" continue fi done
isofiletest="ok" done
while < "$otvet2" != 1 > && < "$otvet2" != 2 > do echo echo "Создать MD5-сумму?" echo "1 - Да" echo "2 - Нет" echo "Введите номер ответа" echo -n "- " read otvet2
if < "$otvet2" != 1 > && < "$otvet2" != 2 > then echo; echo "ОШИБКА!!! НЕВЕРНЫЙ ОТВЕТ" continue fi
if < "$otvet2" = 2 > then break fi
if < "$otvet2" = 1 > then if < -e "$projektsfolder$burnfolder/.md5sum.md5" > then while < "$otvet3" != 1 > && < "$otvet3" != 2 > do echo echo "Файл \"".md5sum.md5"\" уже существует"
if < `du "$projektsfolder$burnfolder/.md5sum.md5" | cut -f1` = 0 > then echo "ВНИМАНИЕ!!! ФАЙЛ \"".md5sum.md5"\" ПУСТОЙ!!!" fi
echo "Хотите его использовать?" echo "1 - Да" echo "2 - Нет" echo "Введите номер ответа" echo -n "- " read otvet3
if < "$otvet3" != 1 > && < "$otvet3" != 2 > then echo; echo "ОШИБКА!!! НЕВЕРНЫЙ ОТВЕТ" continue fi
if < "$otvet3" = 2 > then if < -w "$projektsfolder$burnfolder/.md5sum.md5" > then if rm -v "$projektsfolder$burnfolder/.md5sum.md5" then echo; echo "Стара MD5-сумма удалена" else echo; echo "ОШИБКА!!! Не удалось удалить старую MD5-сумму" continue fi else echo; echo "ОШИБКА!!! Недостаточно прав для удаления старой MD5-суммы" continue fi else break 2 fi done fi
if < ! -w "$projektsfolder$burnfolder" > then echo; echo "ОШИБКА!!! Недостаточно прав для записи MD5-суммы в \""$projektsfolder$burnfolder/.md5sum.md5"\"" continue fi
if cd "$projektsfolder$burnfolder" then echo
if md5deep -r -l . | tee "/tmp/.$burnfolder.md5" | cat then if cp "/tmp/.$burnfolder.md5" "$projektsfolder$burnfolder/.md5sum.md5" then echo; echo "Создание MD5-суммы успешно завершено"
if rm -v "/tmp/.$burnfolder.md5" then echo; echo "Временный файл \""/tmp/.$burnfolder.md5"\" успешно удален" else echo; echo "ОШИБКА!!! Временный файл \""/tmp/.$burnfolder.md5"\" не удален. Вы можете сделать это вручную" fi else echo; echo "ОШИБКА!!! Ошибка при копировании MD5-суммы" continue fi else echo; echo "ОШИБКА!!! Ошибка при создании MD5-суммы" continue fi else echo; echo "ОШИБКА!!! Невозможно перейти в \""$projektsfolder$burnfolder"\"" continue fi
fi
done
echo echo "Приступаем к созданию образа диска" echo
if mkisofs -jcharset utf-8 -r -iso-level 3 -v -V "$burnfolder" -o "$isofolder$burnfolder.iso" "$projektsfolder$burnfolder" then echo; echo "ОБРАЗ УСПЕШНО СОЗДАН"; echo else echo; echo "ОШИБКА!!! ОШИБКА ПРИ СОЗДАНИ ОБРАЗА"; echo fi
#################### # добавить проверку свободного места ####################
exit 0
|
BURNISOLITE
Описание:
Просто записывает образ диска
Как работает:
После запуска вводим имя iso образа, хранящегося в каталоге образом (В моем случае это "/all/BURN/TEMPISO/").
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
#!/bin/bash
############################## ## VERSION - 0.9 ## DATE - 10,02,10 ##############################
########## # Папка для хранения образов isofolder="/all/BURN/TEMPISO/"
# Устройство для записи dvd dvddev="/dev/sr0"
# Режим записи burnrej="-sao"
# Скорость записи burnspeed="4"
# Программа для записи (Аналог cdrecord) burnprog="cdrecord" ##########
if < -e "/usr/bin/$burnprog" > then echo; echo "Программа \"$burnprog\" установлена" else echo; echo "ОШИБКА!!! Программа \"$burnprog\" не установлена"; exit fi
while < "$isofiletest" != "ok" > do echo echo "Введите имя образа диска для записи" echo -n "- " read isoname
if < ! -d "$isofolder" > then echo; echo "ОШИБКА!!! Директория \""$isofolder"\" не существует" continue fi
if < ! -r "$isofolder" > then echo; echo "ОШИБКА!!! Недостаточно прав для чтения директории \""$isofolder"\"" continue fi
if < ! -e "$isofolder$isoname.iso" > then echo; echo "ОШИБКА!!! Образа диска \""$isoname.iso"\" не существует" continue fi
if < ! -r "$isofolder$isoname.iso" > then echo; echo "ОШИБКА!!! Недостаточно прав для чтения образа диска \""$isoname.iso"\"" continue fi
if < ! -s "$isofolder$isoname.iso" > then echo; echo "ОШИБКА!!! Образ диска имеет нулевой размер \""$isoname.iso"\"" continue fi
isofiletest="ok" done
while < "$burningdiskok" != "ok" > do if "$burnprog" dev="$dvddev" "$burnrej" -speed="$burnspeed" -v "$isofolder$isoname.iso" then echo; echo "ЗАПИСЬ УСПЕШНО ЗАВЕРШЕНА" else
otvet1="0"
while < "$otvet1" != 1 > && < "$otvet1" != 2 > do echo echo "ОШИБКА!!! ОШИБКА ПРИ ЗАПИСИ ДИСКА" echo "Хотите повторить?" echo "1 - Да" echo "2 - Нет" echo "Введите номер ответа" echo -n "- " read otvet1
if < "$otvet1" != 1 > && < "$otvet1" != 2 > then echo; echo "ОШИБКА!!! НЕВЕРНЫЙ ОТВЕТ" fi done
if < "$otvet1" = 1 > then continue fi
if < "$otvet1" = 2 > then exit else break fi fi
burningdiskok="ok" done
exit 0
|
MAKETRACKLIST
Описание:
Создает треклист всех mp3-шек в текущем каталоге
Это правда не скрипт а просто однострочник (Повесил как алиас в zsh)
Пример треклиста
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
= T R A C K L I S T =
Albam: Russian drum & bass 03 Genre: Drum & Bass Year: 2008 Tracks: Length: Size:
01. ЮЛИЯ САВИЧЕВА - Никак (DJ ART remix) <04:22> 02. ПЛАНКА - Ангелы online (TRansgen remix) <03:02> 03. КРИСТИНА - Скажу тебе да (Sandrique liquid remix) <05:07> 04. STIM AXEL - Дорога на Восток <05:50> 05. MATISSE - Looking (DJ 007 remix) <04:12> 06. НЕБА ЖИТЕЛИ - Выше всех звёзд (Mendelayev rmx) <06:39> 07. CJ KUBIK - Исчезаю <04:37> 08. M4MIND - Hunter <06:15> 09. RECEPTOR - East electra <04:06> 10. MEGADRUMMER - Brainworm <03:28> 11. REDCO - Killing Mary <06:59> 12. HECTIX - Special guest <04:47> 13. PRESTIGE - Baloney <02:52> 14. MARK TAILOR & C.A.2K - Damager VIP <03:34> 15. OZMA - Invasion <04:43>
|
Как работает:
Запустить в каталоге с mp3-шками.
Потом придется немного руками поправить треклист. (Пока не все поля заполняются и отступы кривые)
|
echo -e "\n\t= T R A C K L I S T =\n\n\tArtist:\t`mp3info2 -p "%a\n" *.mp3 | head -1`\n\tAlbum:\t`mp3info2 -p "%l\n" *.mp3 | head -1`\n\tGenre:\t`mp3info2 -p "%g\n" *.mp3 | head -1`\n\tLabel:\t\n\tYear:\t`mp3info2 -p "%y\n" *.mp3 | head -1`\n\tCD:\t\n\tTracks:\t\n\tLength:\t\n\tSize:\t\n\n" > Tracklist_TEMP.txt ; mp3info2 -p "%n.\t%a\t\t- %t\t\t<%02m:%02s>\n" *.mp3 >> Tracklist_TEMP.txt
|
Скачать
P.S. Вполне допускаю, что это пример того как НЕ надо писать скрипты )
Откройте для себя уже dropbox вместо ifolder. Или религия не позволяет?