Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- objj=avo
- ipaddr='10.0.255.15'
- scph="/var/www/html/$objj"
- logfile="/var/log/${objj}_script.log"
- # Функция для логирования
- log() {
- echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$logfile"
- }
- # Функция для замены пробелов на подчеркивания
- replace_spaces() {
- local input="$1"
- echo "$input" | sed 's/ /_/g'
- }
- # Функция для транслитерации
- transliterate() {
- local input="$1"
- echo "$input" | sed \
- -e 's/а/a/g' -e 's/б/b/g' -e 's/в/v/g' -e 's/г/g/g' \
- -e 's/д/d/g' -e 's/е/e/g' -e 's/ё/yo/g' -e 's/ж/zh/g' \
- -e 's/з/z/g' -e 's/и/i/g' -e 's/й/y/g' -e 's/к/k/g' \
- -e 's/л/l/g' -e 's/м/m/g' -e 's/н/n/g' -e 's/о/o/g' \
- -e 's/п/p/g' -e 's/р/r/g' -e 's/с/s/g' -e 's/т/t/g' \
- -e 's/у/u/g' -e 's/ф/f/g' -e 's/х/h/g' -e 's/ц/ts/g' \
- -e 's/ч/ch/g' -e 's/ш/sh/g' -e 's/щ/sch/g' -e 's/ъ//g' \
- -e 's/ы/y/g' -e 's/ь//g' -e 's/э/e/g' -e 's/ю/yu/g' \
- -e 's/я/ya/g' \
- -e 's/А/A/g' -e 's/Б/B/g' -e 's/В/V/g' -e 's/Г/G/g' \
- -e 's/Д/D/g' -e 's/Е/E/g' -e 's/Ё/Yo/g' -e 's/Ж/Zh/g' \
- -e 's/З/Z/g' -e 's/И/I/g' -e 's/Й/Y/g' -e 's/К/K/g' \
- -e 's/Л/L/g' -e 's/М/M/g' -e 's/Н/N/g' -e 's/О/O/g' \
- -e 's/П/P/g' -e 's/Р/R/g' -e 's/С/S/g' -e 's/Т/T/g' \
- -e 's/У/U/g' -e 's/Ф/F/g' -e 's/Х/H/g' -e 's/Ц/Ts/g' \
- -e 's/Ч/Ch/g' -e 's/Ш/Sh/g' -e 's/Щ/Sch/g' -e 's/Ъ//g' \
- -e 's/Ы/Y/g' -e 's/Ь//g' -e 's/Э/E/g' -e 's/Ю/Yu/g' \
- -e 's/Я/Ya/g' \
- -e 's/1/1/g' -e 's/2/2/g' -e 's/3/3/g' -e 's/4/4/g' \
- -e 's/5/5/g' -e 's/6/6/g' -e 's/7/7/g' -e 's/8/8/g' \
- -e 's/9/9/g' -e 's/0/0/g'
- }
- # Мониторинг изменений
- old_files=$(find "$scph" -type f)
- trap "log 'Скрипт завершен.'; exit 0" SIGTERM SIGINT
- while true; do
- # Проверка существования директории
- if [ ! -d "$scph" ]; then
- log "Директория $scph не существует!"
- exit 1
- fi
- # Переименование файлов
- find "$scph" -type f | while read -r file; do
- dir=$(dirname "$file")
- filename=$(basename "$file")
- new_filename=$(transliterate "$filename")
- new_filename=$(replace_spaces "$new_filename")
- if [[ "$filename" != "$new_filename" ]]; then
- mv "$file" "$dir/$new_filename"
- log "Переименован: $file -> $dir/$new_filename"
- fi
- done
- files=$(find "$scph" -type f)
- if [ "$files" != "$old_files" ]; then
- log "Обнаружены изменения в директории $scph."
- old_files=$files
- rm -rf "/var/www/html/$objj.m3u"
- for f in "$scph"/*.mp3; do
- filename=$(basename "$f")
- echo "#EXTINF:-1,$objj:$filename" >> "/var/www/html/$objj.m3u"
- echo "http://$ipaddr/$objj/$filename" >> "/var/www/html/$objj.m3u"
- done
- sed -i '1s/^/#EXTM3U\n/' "/var/www/html/$objj.m3u"
- log "Плейлист обновлен."
- mosquitto_pub -h localhost -t pla -m "new" -q 2
- fi
- sleep 10
- done
Add Comment
Please, Sign In to add comment