Advertisement
kisame1313

Untitled

Oct 17th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 12.49 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/plph_PelReshet1Publish/ | grep publish.stream | awk -F "." '{print $1}' | uniq | awk 'NR==1 {print $1}')
  6. PHosts[1]=$(ls /opt/cdn/wowza/NSACDN/conf/plph_PelReshet1Publish/ | 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.  
  93. function MoveToRepeat ()
  94. {
  95.     echo "# of symlinks:"
  96.     echo "for stream files"
  97.     rep_count1=$(find /mnt/gfs/cust/${account_name}/content/ -type l | grep ${channel_name} | grep stream | grep -v publish.stream | wc -l)
  98.     echo "for smil files"
  99.     rep_count2=$(find /mnt/gfs/cust/${account_name}/content/ -type l | grep ${channel_name} | grep smil |grep -v pub_group.smil | wc -l)
  100.    
  101.     echo "
  102.    # of files:"
  103.     echo "for stream files"
  104.     rep_count3=$(find /mnt/gfs/cust/${account_name}/content/ -type f | grep ${channel_name} | grep stream | grep -v publish.stream | wc -l)
  105.     echo "for smil files"
  106.     rep_count4=$(find /mnt/gfs/cust/${account_name}/content/ -type f | grep ${channel_name} | grep smil | grep -v pub_group.smil | wc -l)
  107.  
  108.     if [ ${rep_count1} > 0 ]
  109.     then
  110.     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/
  111.     ls -l /mnt/gfs/cust/${account_name}/content/ | grep ${channel_name}  | grep stream | grep -v publish.stream | xargs rm -v
  112.     elif [ ${rep_count2} > 0 ]
  113.     then
  114.     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/
  115.     ls -l /mnt/gfs/cust/${account_name}/content/ | grep ${channel_name}  | grep smil | grep -v pub_group.smil | xargs rm -v
  116.     elif [ ${rep_count3} > 0 ]
  117.     then
  118.     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/
  119.     elif [ ${rep_count4} > 0 ]
  120.     then
  121.     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/
  122.     else
  123.     echo "No files found"
  124.     fi
  125. }
  126.  
  127. function SVNSync ()
  128. {
  129.     svn add /opt/cdn/wowza4/NSACDN/conf/${account_name}_${channel_name}Repeat /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish
  130.     svn update /opt/cdn/wowza4/NSACDN/conf/${account_name}_${channel_name}Repeat /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish
  131.     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
  132.     /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
  133. }
  134.  
  135. function ContentRemove ()
  136. {
  137.     counter=$(find /mnt/gfs/cust/${account_name}/content/ -type f | grep ${channel_name} | wc -l)
  138.  
  139.     if [ ${counter} = 0 ]
  140.         then
  141.            /opt/cdn/bin/pexec.sh  "find /mnt/gfs/cust/${account_name}/content/ | grep -E "${channel_name}" | xargs rm -vf" --zones=svn
  142.     else
  143.             echo "
  144.            
  145.            
  146.            Some files have been found!!!
  147.            
  148.            
  149.            "
  150.             Quit
  151.     fi
  152. }
  153.  
  154. function PublishApplicationChange ()
  155. {
  156.     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
  157.     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
  158.     cat /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/Application.xml | grep -E "/opt/cdn/wowza/NSACDN/conf/"
  159. }
  160.  
  161. function RepeatApplicationChange ()
  162. {
  163.     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
  164.     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
  165.     cat /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat/Application.xml | grep -E "/opt/cdn/wowza/NSACDN/conf/"
  166. }
  167.  
  168. function SymlinksMaker()
  169. {
  170.     /opt/cdn/bin/pexec.sh "ln -s /opt/cdn/wowza/NSACDN/conf/plph_PelReshetHDPublish/PelReshetHD_pub_group.smil /mnt/gfs/cust/plph/content/" --hosts=${PHosts[0]}
  171.     /opt/cdn/bin/pexec.sh "ln -s /opt/cdn/wowza/NSACDN/conf/plph_PelReshetHDPublish/*publish.stream /mnt/gfs/cust/plph/content/" --hosts=${PHosts[1]}
  172. }
  173.  
  174. function Start ()
  175. {
  176.     read -sn1 -p " `echo $'\n'` What do you want to do?
  177.   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 ?
  178.   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/ ?
  179.   3 - Change StorageDir and KeyDir on Application.xml in /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Publish/ ?
  180.   4 - Change StorageDir and KeyDir on Application.xml in /opt/cdn/wowza/NSACDN/conf/${account_name}_${channel_name}Repeat/ ?
  181.   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 ?
  182.   6 - Remove /mnt/gfs/cust/${account_name}/content/ files for ${channel_name} channel ?
  183.   7 - Make symlinks for pub_group smil and publish.stream files
  184.   8 - All of the above.
  185.   0 - Exit ? `echo $'\n'` " answer0
  186.  
  187.    case ${answer0} in "1")
  188.         MoveToPublish
  189.         Quit ;;
  190.         "2")
  191.         MoveToRepeat
  192.         Quit ;;
  193.         "3")
  194.         PublishApplicationChange
  195.         Quit ;;
  196.         "4")
  197.         RepeatApplicationChange
  198.         Quit ;;
  199.         "5")
  200.         SVNSync
  201.         Quit ;;
  202.         "6")
  203.         ContentRemove
  204.         Quit ;;
  205.         "7")
  206.         SymlinksMaker
  207.         Quit ;;
  208.         "8")
  209.         MoveToPublish
  210.         MoveToRepeat
  211.         PublishApplicationChange
  212.         RepeatApplicationChange
  213.         SVNSync
  214.         ContentRemove
  215.         Quit;;
  216.         "0")
  217.         exit 0
  218.         Quit ;;
  219.     esac
  220. }
  221.  
  222. if [ -z "${account_name}" ]
  223.     then
  224.     echo -e "\nAccount name wasn't set\n"
  225.     exit 0
  226.  
  227. elif [ -z "${channel_name}" ]
  228.     then
  229.     echo -e "\nChannel name wasn't set\n"
  230.     exit 0
  231. else
  232.     Start
  233. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement