Browse Source

Backup script improved, zsh startup time boost

main
Yigit Colakoglu 4 years ago
parent
commit
df48c01c1b
2 changed files with 16 additions and 10 deletions
  1. +7
    -2
      .config/zsh/.zshrc
  2. +9
    -8
      .local/bin/backup

+ 7
- 2
.config/zsh/.zshrc View File

@ -1,3 +1,4 @@
#zmodload zsh/zprof
eval "$(direnv hook zsh)" >> $XDG_RUNTIME_DIR/direnv
paleofetch
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
@ -11,9 +12,12 @@ source <(antibody init)
#Autocompletion
autoload -Uz compinit
compinit
if [[ -n $XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION ]]; then
compinit -d $XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION
else
compinit -C -d $XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION
fi;
compinit -d $XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION
[[ ! -d "$XDG_DATA_HOME"/zsh/history ]] || source "$XDG_DATA_HOME"/zsh/history
HISTSIZE=100000
@ -134,3 +138,4 @@ if (( ${+terminfo[smkx]} && ${+terminfo[rmkx]} )); then
add-zle-hook-widget -Uz zle-line-init zle_application_mode_start
add-zle-hook-widget -Uz zle-line-finish zle_application_mode_stop
fi
#zprof

+ 9
- 8
.local/bin/backup View File

@ -9,12 +9,13 @@ readonly SSH_HOST=192.168.1.8
readonly SSH_USER=yigit
readonly SSH_KEY="/home/yigit/.ssh/id_skeleton"
readonly RSYNC_PROFILE="$SSH_USER@$SSH_HOST:~/snapshots"
alias ssh_cmd="ssh -i \"$SSH_KEY\" $SSH_USER@$SSH_HOST"
DEVICE=tatooine
OPT="-aPh"
LINK="--link-dest=$RSYNC_PROFILE/$DEVICE/last/"
SNAP="$RSYNC_PROFILE/$DEVICE/"
LAST="$RSYNC_PROFILE/$DEVICE/last"
date=$(date "+%Y-%b-%d:_%T")
date=$(date "+%I:%M-%d.%m.%Y")
# You should enter absolute paths
DIRS="/home/yigit
/etc
@ -27,15 +28,15 @@ timeout 3 ssh -i "$SSH_KEY" $SSH_USER@$SSH_HOST id < /dev/null > /dev/null 2> /d
# Run rsync to create snapshot
while IFS= read -r DIR
do
DEST=$(echo "$DIR" | sed "s/\/[^\/]*$//g")
ssh -i "$SSH_KEY" $SSH_USER@$SSH_HOST mkdir -p "~/snapshots/$DEVICE/$date$DEST" < /dev/null
rsync "$@" -e "ssh -i $SSH_KEY" $OPT "$LINK" "$DIR" "${SNAP}$date$DEST"
LINK="--link-dest=/home/$SSH_USER/snapshots/tatooine/last$DIR/"
ssh -i "$SSH_KEY" $SSH_USER@$SSH_HOST mkdir -p "~/snapshots/$DEVICE/$date$DIR" < /dev/null
rsync --exclude '.cache' "$@" -e "ssh -i $SSH_KEY" $OPT "$LINK" "$DIR/" "${SNAP}$date$DIR/"
done << EOF
$DIRS
EOF
# Remove symlink to previous snapshot
rm -f "$LAST"
ssh_cmd rm -f "~/snapshots/$DEVICE/last" < /dev/null
# Create new symlink to latest snapshot for the next backup to hardlink
ln -s "${SNAP}$date" "$LAST"
ssh -i "$SSH_KEY" $SSH_USER@$SSH_HOST ln -s "~/snapshots/$DEVICE/$date" "~/snapshots/$DEVICE/last" < /dev/null

Loading…
Cancel
Save