Guest User

Untitled

a guest
May 9th, 2018
1,140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 0 0
  1. ## Innhold
  2.  
  3. backup.sh
  4. backup_mysql.sh
  5. clean.sh
  6. permission.sh
  7. rename.sh
  8. replace.sh
  9. tree.sh
  10.  
  11. ## backup.sh
  12.  
  13. #!/usr/bin/env zsh
  14.  
  15. # reddvinylene@gmail.com BACKUP HOME DIRECTORY
  16.  
  17. for folder in biz etc src typ usr var; do
  18.  
  19. if [[ -d "$folder" ]]; then
  20.  
  21. clean $folder
  22.  
  23. tar cvzf $folder.tgz $folder
  24.  
  25. cfv -Cq -t sfv -f $folder.sfv.tmp $folder.tgz
  26.  
  27. cat $folder.sfv.tmp | awk '! /^;/' > $folder.sfv
  28.  
  29. rm -f $folder.sfv.tmp
  30.  
  31. fi
  32.  
  33. done
  34.  
  35. ## backup_mysql.sh
  36.  
  37. #!/usr/bin/env zsh
  38.  
  39. # reddvinylene@gmail.com BACKUP MYSQL DATABASES
  40.  
  41. databases=( mydb1 mydb2 mydb3 )
  42.  
  43. server="foo@bar:/databases"
  44.  
  45. for database in "${databases[@]}"; do
  46.  
  47. tarball="$database_$(date +%Y%m%d_%H%M).tgz"
  48.  
  49. mysqldump -u root -p "$database" | tar cvzf "$tarball" - && rsync -avP "$tarball" "$server"
  50.  
  51. end
  52.  
  53. ## clean.sh
  54.  
  55. #!/usr/bin/env zsh
  56.  
  57. # reddvinylene@gmail.com CLEAN TEXT FILES
  58.  
  59. setopt nullglob
  60.  
  61. # Extend regular expressions.
  62.  
  63. setopt extendedglob
  64.  
  65. for file in **/*~*.eps(.); do
  66.  
  67. # Check if file is text.
  68.  
  69. if file -b $file | grep -q "text"; then
  70.  
  71. # Remove CRLF, excess blank lines and trailing white space, replace tabs with whitespace.
  72.  
  73. tr -d '\r' < $file | cat -s | sed -r -e 's/[[:space:]]+$//' | sed -e $'s/\t/ /g' > $file.tmp
  74.  
  75. mv -f $file.tmp $file
  76.  
  77. echo "$file"
  78.  
  79. fi
  80.  
  81. done
  82.  
  83. ## permission.sh
  84.  
  85. #!/usr/bin/env zsh
  86.  
  87. # reddvinylene@gmail.com SET PERMISSIONS
  88.  
  89. echo "Setting files to $1 and folders to $2..."
  90.  
  91. find . -type f -exec chmod $1 '{}' \;
  92.  
  93. find . -type d -exec chmod $2 '{}' \;
  94.  
  95. echo "Done."
  96.  
  97. ## rename.sh
  98.  
  99. #!/usr/bin/env zsh
  100.  
  101. # reddvinylene@gmail.com SANITIZE FILE- AND FOLDER NAMES
  102.  
  103. setopt nullglob
  104.  
  105. folders () {
  106.  
  107. for old in *; do
  108.  
  109. if [ -f "$old" ]; then
  110.  
  111. files "$old"
  112.  
  113. elif [ -d "$old" ]; then
  114.  
  115. new=$(echo "$old" | tr "[:upper:]" "[:lower:]")
  116.  
  117. new=$(echo "$new" | sed -e 's/ /_/g' -e 's/\./_/g' -e 's/[_-][()]/-/g' -e 's/[()][_-]/-/g' -e 's/[()]//g' -e 's/[_-]$//g' -e 's/[_-]\{2,\}/-/g' -e 's/[][`!,'\'']//g' -e 's/&/and/g')
  118.  
  119. if [ "$old" != "$new" ]; then
  120.  
  121. mv "$old" "$new"
  122.  
  123. echo "$old -> $new"
  124.  
  125. else
  126.  
  127. echo "$old: nothing to do"
  128.  
  129. fi
  130.  
  131. cd "$new"
  132.  
  133. folders "$new"
  134.  
  135. cd ..
  136.  
  137. else
  138.  
  139. echo "$new: directory invalid"
  140.  
  141. fi
  142.  
  143. done
  144.  
  145. }
  146.  
  147. files () {
  148.  
  149. old=$1
  150.  
  151. new=$(echo "$old" | tr "[:upper:]" "[:lower:]")
  152.  
  153. if [[ "$old" == *.* ]]; then
  154.  
  155. # Take out extension.
  156.  
  157. extension=${new##*.}
  158.  
  159. new=${new%.*}
  160.  
  161. new=$(echo "$new" | sed -e 's/ /_/g' -e 's/\./_/g' -e 's/[_-][()]/-/g' -e 's/[()][_-]/-/g' -e 's/[()]//g' -e 's/[_-]$//g' -e 's/[_-]\{2,\}/-/g' -e 's/[][`!,'\'']//g' -e 's/&/and/g')
  162.  
  163. new=$(echo "$new" | sed -e 's/^\([0-9]\{2,3\}\)_/\1-/g')
  164.  
  165. # Put it back.
  166.  
  167. new="$new"."$extension"
  168.  
  169. if [ "$old" != "$new" ]; then
  170.  
  171. mv "$old" "$new"
  172.  
  173. echo "$old -> $new"
  174.  
  175. else
  176.  
  177. echo "$old: nothing to do"
  178.  
  179. fi
  180.  
  181. fi
  182.  
  183. }
  184.  
  185. folders .
  186.  
  187. ## replace.sh
  188.  
  189. #!/usr/bin/env zsh
  190.  
  191. # reddvinylene@gmail.com REPLACE WORDS IN TEXT FILES
  192.  
  193. echo "Replacing $1 with $2"
  194.  
  195. for file in **/*(.); do
  196.  
  197. # Check if file is text.
  198.  
  199. if file -b $file | grep -q "text"; then
  200.  
  201. sed -i '' "s/$1/$2/g" $file
  202.  
  203. echo "$file"
  204.  
  205. fi
  206.  
  207. done
  208.  
  209. ## tree.sh
  210.  
  211. #!/usr/bin/env zsh
  212.  
  213. # reddvinylene@gmail.com LIST FILES AND FOLDERS
  214.  
  215. setopt nullglob
  216.  
  217. case $1 in
  218.  
  219. # Files and folders.
  220.  
  221. (-a|--all) printf '%s\n' **/*(e:'[[ -d $REPLY ]] && REPLY=$REPLY/ || REPLY=$REPLY':) ;;
  222.  
  223. # Just folders.
  224.  
  225. (*) printf '%s/\n' **/*(/) ;;
  226.  
  227. esac
Add Comment
Please, Sign In to add comment