Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## Innhold
- backup.sh
- backup_mysql.sh
- clean.sh
- permission.sh
- rename.sh
- replace.sh
- tree.sh
- ## backup.sh
- #!/usr/bin/env zsh
- # reddvinylene@gmail.com BACKUP HOME DIRECTORY
- for folder in biz etc src typ usr var; do
- if [[ -d "$folder" ]]; then
- clean $folder
- tar cvzf $folder.tgz $folder
- cfv -Cq -t sfv -f $folder.sfv.tmp $folder.tgz
- cat $folder.sfv.tmp | awk '! /^;/' > $folder.sfv
- rm -f $folder.sfv.tmp
- fi
- done
- ## backup_mysql.sh
- #!/usr/bin/env zsh
- # reddvinylene@gmail.com BACKUP MYSQL DATABASES
- databases=( mydb1 mydb2 mydb3 )
- server="foo@bar:/databases"
- for database in "${databases[@]}"; do
- tarball="$database_$(date +%Y%m%d_%H%M).tgz"
- mysqldump -u root -p "$database" | tar cvzf "$tarball" - && rsync -avP "$tarball" "$server"
- end
- ## clean.sh
- #!/usr/bin/env zsh
- # reddvinylene@gmail.com CLEAN TEXT FILES
- setopt nullglob
- # Extend regular expressions.
- setopt extendedglob
- for file in **/*~*.eps(.); do
- # Check if file is text.
- if file -b $file | grep -q "text"; then
- # Remove CRLF, excess blank lines and trailing white space, replace tabs with whitespace.
- tr -d '\r' < $file | cat -s | sed -r -e 's/[[:space:]]+$//' | sed -e $'s/\t/ /g' > $file.tmp
- mv -f $file.tmp $file
- echo "$file"
- fi
- done
- ## permission.sh
- #!/usr/bin/env zsh
- # reddvinylene@gmail.com SET PERMISSIONS
- echo "Setting files to $1 and folders to $2..."
- find . -type f -exec chmod $1 '{}' \;
- find . -type d -exec chmod $2 '{}' \;
- echo "Done."
- ## rename.sh
- #!/usr/bin/env zsh
- # reddvinylene@gmail.com SANITIZE FILE- AND FOLDER NAMES
- setopt nullglob
- folders () {
- for old in *; do
- if [ -f "$old" ]; then
- files "$old"
- elif [ -d "$old" ]; then
- new=$(echo "$old" | tr "[:upper:]" "[:lower:]")
- 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')
- if [ "$old" != "$new" ]; then
- mv "$old" "$new"
- echo "$old -> $new"
- else
- echo "$old: nothing to do"
- fi
- cd "$new"
- folders "$new"
- cd ..
- else
- echo "$new: directory invalid"
- fi
- done
- }
- files () {
- old=$1
- new=$(echo "$old" | tr "[:upper:]" "[:lower:]")
- if [[ "$old" == *.* ]]; then
- # Take out extension.
- extension=${new##*.}
- new=${new%.*}
- 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')
- new=$(echo "$new" | sed -e 's/^\([0-9]\{2,3\}\)_/\1-/g')
- # Put it back.
- new="$new"."$extension"
- if [ "$old" != "$new" ]; then
- mv "$old" "$new"
- echo "$old -> $new"
- else
- echo "$old: nothing to do"
- fi
- fi
- }
- folders .
- ## replace.sh
- #!/usr/bin/env zsh
- # reddvinylene@gmail.com REPLACE WORDS IN TEXT FILES
- echo "Replacing $1 with $2"
- for file in **/*(.); do
- # Check if file is text.
- if file -b $file | grep -q "text"; then
- sed -i '' "s/$1/$2/g" $file
- echo "$file"
- fi
- done
- ## tree.sh
- #!/usr/bin/env zsh
- # reddvinylene@gmail.com LIST FILES AND FOLDERS
- setopt nullglob
- case $1 in
- # Files and folders.
- (-a|--all) printf '%s\n' **/*(e:'[[ -d $REPLY ]] && REPLY=$REPLY/ || REPLY=$REPLY':) ;;
- # Just folders.
- (*) printf '%s/\n' **/*(/) ;;
- esac
Add Comment
Please, Sign In to add comment