Advertisement
Guest User

Untitled

a guest
Jul 9th, 2017
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.27 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. completed_dir=kazkur
  4. convert_dir=kazkurkitur
  5. lock_dir=lockfailui
  6.  
  7. db_user=user
  8. db_pass=pass
  9. db_db=database
  10. db_socket=socket
  11.  
  12. db_run_query="mysql -u $db_user -p $db_pass -S $db_socket -D $db_db -e"
  13.  
  14. # Ir taip toliau
  15.  
  16. [ -f $lock_dir/`basename $0`.lock ] && { echo "`date` - already running" >&2; exit 1; }
  17. touch $lock_dir/`basename $0`.lock || { echo "`date` - can't create a lock" >&2; exit 1; }
  18. #  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.
  19.  
  20. cd $convert_dir
  21. for file in `ls *.mp3`; do # dirbam su kiekvienu rastu failu turinciu tinkama pletini
  22.    echo "`date` - working with $file"
  23.    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.
  24.    $db_run_query "UPDATE dj_media SET media_file_status=process WHERE media_id=$id" || { echo "`date` - done working with $file (failure)"; continue; }
  25.    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 :)
  26.       echo "Failed to set status ($id)" >&2
  27.       rm -f $file
  28.       echo "`date` - done working with $file (failure)"
  29.       continue
  30.    fi
  31.    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
  32.    $db_run_query "UPDATE dj_media SET media_file_status=complete WHERE media_id=$id" && \
  33.    { rm -f $file; echo "`date` - done working with $file (success)"; } || echo "`date` - done working with $file (failure)" # sekmes atveju pavalom faila. (Tomas) OK
  34. done
  35. rm -f $lock_dir/`basename $0`.lock # paleidziam lock'a
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement