Advertisement
kisame1313

Untitled

Oct 30th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 12.33 KB | None | 0 0
  1. #! /bin/bash
  2. account_name=$1
  3. channel_name=$2
  4. PHosts=()
  5. PHosts[0]=$(ls /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/ | grep publish.stream | awk -F "." '{print $1}' | uniq | awk 'NR==1 {print $1}')
  6. PHosts[1]=$(ls /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/ | grep publish.stream | awk -F "." '{print $1}' | uniq | awk 'NR==2 {print $1}')
  7. function Quit ()
  8. {
  9.     read -sn1 -p " `echo $'\n'` Do you want to exit? [y/n] `echo $'\n'` " answer2
  10.  
  11.     if [ "${answer2}" = "y" ]
  12.         then
  13.             exit 0
  14.  
  15.     elif [ "${answer2}" = "n" ]
  16.         then
  17.             Start
  18.  
  19.     else
  20.         echo -e "\nIncorrect symbol!!!\n"
  21.         Quit
  22.     fi
  23. }
  24.  
  25. function MoveToPublish ()
  26. {   echo "
  27.    -----------------------------------------/mnt/gfs/cust/${account_name}/content/-------------------------------------------------------------
  28.    "
  29.     symlinks_count_1=$(find /mnt/gfs/cust/${account_name}/content/ -type l | grep ${channel_name} | grep publish.stream | wc -l)
  30.     echo "${symlinks_count_1} publish.stream symlinks founded"
  31.     symlinks_count_2=$(ls -l /mnt/gfs/cust/${account_name}/content/ | grep ${channel_name} | grep publish.stream | wc -l)
  32.     echo "${symlinks_count_2} publish.stream files founded"
  33.     symlinks_count_3=$(find /mnt/gfs/cust/${account_name}/content/ -type l | grep ${channel_name} | grep pub_group.smil | wc -l)
  34.     echo "${symlinks_count_3} pub_group.smil symlinks founded"
  35.     symlinks_count_4=$(ls -l /mnt/gfs/cust/${account_name}/content/ | grep ${channel_name} | grep pub_group.smil | wc -l)
  36.     echo "${symlinks_count_4} pub_group.smil files founded"
  37.     echo "
  38.    -------------------------------/opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat/---------------------------------------------
  39.    "
  40.     symlinks_count_5=$(find /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat/ -type f | grep ${channel_name} | grep publish.stream | wc -l)
  41.     echo "${symlinks_count_5} publish.stream files founded in "
  42.     symlinks_count_6=$(find /mnt/gfs/cust/${account_name}/content/ -type f | grep ${channel_name} | grep pub_group.smil | wc -l)
  43.     echo "${symlinks_count_6} pub_group.smil files founded"
  44.     echo "
  45.    ---------------------------------------------------------------------------------------------------------------------------------------------
  46.    "
  47.    
  48.     if [ ${symlinks_count_1} > 0 ] && [ ${symlinks_count_2} = 0 ]
  49.         then
  50.         ls -l /mnt/gfs/cust/${account_name}/content/ | grep ${channel_name} | grep publish.stream | awk '$10=="->"' | awk '{print $11}' | xargs -i svn mv {} /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/
  51.         ls -l /mnt/gfs/cust/${account_name}/content/ | grep ${channel_name} | grep publish.stream | xargs rm -v
  52.     elif [ ${symlinks_count_1} > 0 ] && [ ${symlinks_count_2} > 0 ]
  53.         then
  54.         ls -l /mnt/gfs/cust/${account_name}/content/ | grep ${channel_name} | grep publish.stream | awk '$10=="->"' | awk '{print $11}' | xargs -i svn mv {} /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/
  55.         find /mnt/gfs/cust/${account_name}/content/ -type l | grep ${channel_name} | grep publish.stream | xargs rm -v
  56.         find /mnt/gfs/cust/${account_name}/content/ -type f | grep ${channel_name} | grep publish.stream | xargs -i svn mv {} /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/
  57.     elif [ ${symlinks_count_1} = 0 ] && [ ${symlinks_count_2} = 0 ]
  58.         then
  59.         echo "No files have been found! "    
  60.     elif [ ${symlinks_count_1} = 0 ] && [ ${symlinks_count_2} > 0 ]
  61.         then
  62.         find /mnt/gfs/cust/${account_name}/content/ -type f | grep ${channel_name} | grep publish.stream | xargs -i svn mv {} /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/
  63.     else
  64.         echo "Unknown error"    
  65.     fi    
  66.    
  67.     if [ ${symlinks_count_3} > 0 ] && [ ${symlinks_count_4} = 0 ]
  68.         then
  69.         ls -l /mnt/gfs/cust/${account_name}/content/ | grep ${channel_name} | grep pub_group.smil | awk '$10=="->"' | awk '{print $11}' | xargs -i svn mv {} /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/
  70.         ls -l /mnt/gfs/cust/${account_name}/content/ | grep ${channel_name} | grep pub_group.smil | xargs rm -v
  71.     elif [ ${symlinks_count_3} > 0 ] && [ ${symlinks_count_4} > 0 ]
  72.         then
  73.         ls -l /mnt/gfs/cust/${account_name}/content/ | grep ${channel_name} | grep pub_group.smil | awk '$10=="->"' | awk '{print $11}' | xargs -i svn mv {} /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/
  74.         find /mnt/gfs/cust/${account_name}/content/ -type l | grep ${channel_name} | grep pub_group.smil | xargs rm -v
  75.         find /mnt/gfs/cust/${account_name}/content/ -type f | grep ${channel_name} | grep pub_group.smil | xargs -i svn mv {} /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/
  76.     elif [ ${symlinks_count_3} = 0 ] && [ ${symlinks_count_4} = 0 ]
  77.         then
  78.        echo "No files have been found! "
  79.     elif [ ${symlinks_count_3} = 0 ] && [ ${symlinks_count_4} > 0 ]
  80.         then
  81.         find /mnt/gfs/cust/${account_name}/content/ -type f | grep ${channel_name} | grep pub_group.smil | xargs -i svn mv {} /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/
  82.     else
  83.         echo "Unknown error"
  84.     fi
  85.    
  86.     if [ ${symlinks_count_5} > 0 ] || [ ${symlinks_count_6} > 0 ]
  87.     then
  88.     find /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat/ -type f | grep ${channel_name} | grep _pub_group.smil | xargs -i svn mv {} /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/
  89.     find /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat/ -type f | grep ${channel_name} | grep publish.stream | xargs -i svn mv {} /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/
  90.     fi    
  91.  
  92.     /opt/cdn/bin/pexec.sh "rename -v 's%${PHosts[1]}.%%' /mnt/gfs/cust/${account_name}/content/*publish.stream" --hosts=svn
  93.     /opt/cdn/bin/pexec.sh "rm -v /mnt/gfs/cust/${account_name}/content/${PHosts[0]}*" --hosts=svn
  94. }
  95.  
  96. function MoveToRepeat ()
  97. {
  98.     echo "# of symlinks:"
  99.     rep_count1=$(find /mnt/gfs/cust/${account_name}/content/ -type l | grep ${channel_name} | grep stream | grep -v publish.stream | wc -l)
  100.     echo "${rep_count1} for stream files"
  101.    
  102.     rep_count2=$(find /mnt/gfs/cust/${account_name}/content/ -type l | grep ${channel_name} | grep smil |grep -v pub_group.smil | wc -l)
  103.     echo "${rep_count2} for smil files"
  104.    
  105.    
  106.     echo "
  107.    # of files:"
  108.     echo "for stream files"
  109.     rep_count3=$(find /mnt/gfs/cust/${account_name}/content/ -type f | grep ${channel_name} | grep stream | grep -v publish.stream | wc -l)
  110.     echo "for smil files"
  111.     rep_count4=$(find /mnt/gfs/cust/${account_name}/content/ -type f | grep ${channel_name} | grep smil | grep -v pub_group.smil | wc -l)
  112.  
  113.     if [ ${rep_count1} > 0 ]
  114.     then
  115.     ls -l /mnt/gfs/cust/${account_name}/content/ | grep ${channel_name}  | grep stream | grep -v publish.stream | awk '$10=="->"' | awk '{print $11}' | xargs -i svn mv {} /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat/
  116.     ls -l /mnt/gfs/cust/${account_name}/content/ | grep ${channel_name}  | grep stream | grep -v publish.stream | xargs rm -v
  117.     elif [ ${rep_count2} > 0 ]
  118.     then
  119.     ls -l /mnt/gfs/cust/${account_name}/content/ | grep ${channel_name}  | grep smil| grep -v pub_group.smil | awk '$10=="->"' | awk '{print $11}' | xargs -i svn mv {} /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat/
  120.     ls -l /mnt/gfs/cust/${account_name}/content/ | grep ${channel_name}  | grep smil | grep -v pub_group.smil | xargs rm -v
  121.     elif [ ${rep_count3} > 0 ]
  122.     then
  123.     find /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/ -type f | grep ${channel_name} | grep stream | grep -v publish.stream | xargs -i svn mv {} /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat/
  124.     elif [ ${rep_count4} > 0 ]
  125.     then
  126.     find /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/ -type f | grep ${channel_name} | grep smil | grep -v _pub_group.smil | xargs -i svn mv {} /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat/
  127.     else
  128.     echo "No files found"
  129.     fi
  130. }
  131.  
  132. function SVNSync ()
  133. {
  134.     svn add /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish
  135.     svn update /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish
  136.     svn commit -m 'Changed stream smil files folders' /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish
  137.     /opt/cdn/bin/pexec.sh "/opt/cdn/utils/svn update /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish" --zones=svn
  138. }
  139.  
  140. function ContentRemove ()
  141. {
  142.     counter=$(find /mnt/gfs/cust/${account_name}/content/ -type f | grep ${channel_name} | wc -l)
  143.  
  144.     if [ ${counter} = 0 ]
  145.         then
  146.            /opt/cdn/bin/pexec.sh  "find /mnt/gfs/cust/${account_name}/content/ | grep -E "${channel_name}" | xargs rm -vf" --zones=svn
  147.     else
  148.             echo "
  149.            
  150.            
  151.            Some files have been found!!!
  152.            
  153.            
  154.            "
  155.             Quit
  156.     fi
  157. }
  158.  
  159. function PublishApplicationChange ()
  160. {
  161.     sed -i "s+/mnt/gfs/cust/${account_name}/content+/opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish+g" /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/Application.xml
  162.     sed -i "s+/mnt/gfs/cust/${account_name}/keys+/opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish+g" /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/Application.xml
  163.     cat /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/Application.xml | grep -E "/opt/cdn/wowza/NSACDN/conf/"
  164. }
  165.  
  166. function RepeatApplicationChange ()
  167. {
  168.     sed -i "s+/mnt/gfs/cust/${account_name}/content+/opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat+g" /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat/Application.xml
  169.     sed -i "s+/mnt/gfs/cust/${account_name}/keys+/opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat+g" /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat/Application.xml
  170.     cat /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat/Application.xml | grep -E "/opt/cdn/wowza/NSACDN/conf/"
  171. }
  172.  
  173. function Start ()
  174. {
  175.     read -sn1 -p " `echo $'\n'` What do you want to do?
  176.   1 - Move _pub_group.smil and publish.stream files from ll /mnt/gfs/cust/${account_name}/content/ directory to /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/ for ${channel_name} channel ?
  177.   2 - Move stream and publish files for ${channel_name} channel from /mnt/gfs/cust/${account_name}/content/ to /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat/ ?
  178.   3 - Change StorageDir and KeyDir on Application.xml in /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/ ?
  179.   4 - Change StorageDir and KeyDir on Application.xml in /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat/ ?
  180.   5 - Sync /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat/ and /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/ folders for SVN zone ?
  181.   6 - Remove /mnt/gfs/cust/${account_name}/content/ files for ${channel_name} channel ?
  182.   7 - All of the above.
  183.   0 - Exit ? `echo $'\n'` " answer0
  184.  
  185.    case ${answer0} in "1")
  186.         MoveToPublish
  187.         Quit ;;
  188.         "2")
  189.         MoveToRepeat
  190.         Quit ;;
  191.         "3")
  192.         PublishApplicationChange
  193.         Quit ;;
  194.         "4")
  195.         RepeatApplicationChange
  196.         Quit ;;
  197.         "5")
  198.         SVNSync
  199.         Quit ;;
  200.         "6")
  201.         ContentRemove
  202.         Quit ;;
  203.         "7")
  204.         MoveToPublish
  205.         MoveToRepeat
  206.         PublishApplicationChange
  207.         RepeatApplicationChange
  208.         SVNSync
  209.         ContentRemove
  210.         Quit;;
  211.         "0")
  212.         exit 0
  213.         Quit ;;
  214.     esac
  215. }
  216.  
  217. if [ -z "${account_name}" ]
  218.     then
  219.     echo -e "\nAccount name wasn't set\n"
  220.     exit 0
  221.  
  222. elif [ -z "${channel_name}" ]
  223.     then
  224.     echo -e "\nChannel name wasn't set\n"
  225.     exit 0
  226. else
  227.     Start
  228. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement