Advertisement
Guest User

Untitled

a guest
Jul 9th, 2017
74
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. # Ir taip toliau
  13.  
  14. [ -f $lock_dir/`basename $0`.lock ] && { echo "`date` - already running" >&2; exit 1; }
  15. touch $lock_dir/`basename $0`.lock || { echo "`date` - can't create a lock" >&2; exit 1; }
  16. #  realiam gyvenime dar gali pasitailyti 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.
  17.  
  18. cd $convert_dir
  19. for file in `ls *.mp3`; do # dirbam su kiekvienu rastu failu turinciu tinkama pletini
  20.    echo "`date` - working with $file"
  21.    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.
  22.    mysql -u $db_user -p $db_pass -S $db_socket -D $db_db -e "UPDATE dj_media SET media_file_status=process WHERE media_id=$id" || continue; # cia buvo galima exitinti, is principo - nes sita dalis failins jeigu blogas username, db, socket'as ar pan.
  23.    if ! [[ `mysql -u $db_user -p db_password -S $db_socket -D $db_db -e "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 :)
  24.       echo "Failed to set status ($id)" >&2
  25.       rm -f $file
  26.       continue
  27.    fi
  28.    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
  29.    mysql -u $db_user -p $db_pass -S $db_socket -D $db_db -e "UPDATE dj_media SET media_file_status=complete WHERE media_id=$id" && \
  30.    { rm -f $file; echo "`date` - done working with $file (success)"; } # sekmes atveju pavalom faila. (Tomas) OK
  31. done
  32. rm -f $lock_dir/`basename $0`.lock # paleidziam lock'a
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement