Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- completed_dir=kazkur
- convert_dir=kazkurkitur
- lock_dir=lockfailui
- db_user=user
- db_pass=pass
- db_db=database
- db_socket=socket
- db_run_query="mysql -u $db_user -p $db_pass -S $db_socket -D $db_db -e"
- # Ir taip toliau
- [ -f $lock_dir/`basename $0`.lock ] && { echo "`date` - already running" >&2; exit 1; }
- touch $lock_dir/`basename $0`.lock || { echo "`date` - can't create a lock" >&2; exit 1; }
- # realiam gyvenime dar gali pasitaikyti situaciju kai vienas run'as nespeja sukonvertuoti visko per intervala ir pasileidzia konkuruojantis procesas, tai pridejau run lock'inima ir tikrinima pradzioj. Jei negali susikurti lock'o (permissions, missing dir, whatever) irgi turi fail'inti - pasekmes kitaip gali buti liudnesnes. (Tomas) Labai liuks. Idealu butu loga laikyti /home/sites/djscene/logs/ folderyje.
- cd $convert_dir
- for file in `ls *.mp3`; do # dirbam su kiekvienu rastu failu turinciu tinkama pletini
- echo "`date` - working with $file"
- id=`echo $file | grep -Eo "[0-9]+\.[^\.]+$" | grep -Eo "^[0-9]+"` # kazkokie kreivi pipe su kazkokiais regexp'ais issizvejot id - siuo atveju turetu pasiimti skaiciu esanti pries paskutini taska eilutej - (Tomas) butent taip ir reikia - skaicius pries pasktuini taska.
- $db_run_query "UPDATE dj_media SET media_file_status=process WHERE media_id=$id"
- if ! [[ `$db_run_query "SELECT media_file_status FROM dj_media WHERE media_id=$id"` =~ process$ ]]; then # tikrinam ar pavyko uzsettinti statusa "process" (bash'izmas, beje, panaudotas - kas pataisys i posix compatible: veliava i rankas :)
- echo "Failed to set status ($id)" >&2
- echo "`date` - done working with $file (failure)"
- rm -f $file
- continue
- fi
- nice -n 19 lame -h $convert_dir/$file $completed_dir/$file && \ # encodinam. (Tomas) butent tokius parametrus ir tokia komanda reik vykdyti. priklausomai nuo failo dydzio ji uztruknka nuo 5 iki 10 min
- $db_run_query "UPDATE dj_media SET media_file_status=complete WHERE media_id=$id" && \
- { rm -f $file; echo "`date` - done working with $file (success)"; } || echo "`date` - done working with $file (failure)" # sekmes atveju pavalom faila. (Tomas) OK
- done
- rm -f $lock_dir/`basename $0`.lock # paleidziam lock'a
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement