рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмреАрдЪ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди

рдЬрдм рдореИрдВ рд▓рдЧрд╛рддрд╛рд░ ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдорд╢реАрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 3x рддрдХ рдкрд╣реБрдВрдЪ рдЧрдпрд╛, рддреЛ рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЬрд▓реНрджреА рд╕реЗ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдерд╛, рдФрд░ рдпрд╣ рдмреИрд╢ рдЙрдкрдирд╛рдореЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХрд╛ рд╕рдордп рдерд╛, рд╕рдВрдкрд╛рджрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдп рдкрд░реНрдпрд╛рд╡рд░рдг рддрддреНрд╡ рд░рд┐рдореЛрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЛред рджреВрд╕рд░реА рдУрд░, рд╣рдореЗрдВ рдЯрд░реНрдорд┐рдирд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдЯреИрдм рдореЗрдВ рднреНрд░рдорд┐рдд рди рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реАрдХреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдирддреАрдЬрддрди, рдореИрдВ рдореЗрдЬрдмрд╛рди рдХреЗ scp, рд╕реНрдХреНрд░реАрди рдФрд░ рд░рдВрдЧ рднреЗрджрднрд╛рд╡ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЖрдпрд╛ :)
рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ:
рдШрд░ рдкреНрд░рдгрд╛рд▓реА:

рджреВрд░рд╕реНрде рдорд╢реАрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ:

рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб:
$ profsync
рдХрдЯ рдХреЗ рддрд╣рдд рд╡рд┐рд╡рд░рдгред


рдореИрдВрдиреЗ рдЬреЛ рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдХреА рдереА, рдЙрд╕рдиреЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рд╕реНрдерд╛рдиреАрдп рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдерд╛ (рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рджреЗрдЦреЗрдВ), рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрд░реЛрдд рд╕реНрдерд╛рдиреАрдп рдерд╛:

$ cat .bashrc
# Check for an interactive session
[ -z "$PS1" ] && return
source ~/.bashrc_local
alias ls='ls --color=auto'
PS1='[\u@\[\e[0;'$PS1_hostcolor'm\]\h\[\e[0m\] \w]\$ '
complete -cf sudo
source ~/.bash_functions


рдФрд░ рд╕реНрдерд╛рдиреАрдп рдПрдХ рдореЗрдВ рдореИрдВрдиреЗ рдЖрд╡рд╢реНрдпрдХ рдЪрд░ рд▓рд┐рдЦрд╛ рд╣реИ:

$ cat .bashrc_local
PS1_hostcolor=32
export SCREEN_hostcolor=g


рдЗрди рд╕рд░рд▓ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд╛рдж, PS1 рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛, рдореЗрд░реЗ рдореЗрдЬрдмрд╛рди рд╕рд┐рд╕реНрдЯрдо рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реБрдПред
рдФрд░ рдЗрдирдХреЗ рдмрд╛рдж:

$ cat .screenrc
eval "hardstatus string '%{= .w}%-w%{= .$SCREEN_hostcolor}%50>%n %t%{= .w}%+w%<'"
hardstatus alwayslastline


рд╣рд░реА рдФрд░ рд╕реНрдХреНрд░реАрдиред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдмрд╛рдХреА рд╕рднреА рдорд╢реАрдиреЛрдВ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдирдХрд▓ рд╣реИред рдореБрдЭреЗ рдХрдорд╛рдВрдбрд▓рд╛рдЗрдирдлреВ рдкрдврд╝рдирд╛ рдкрд╕рдВрдж рд╣реИ, рдФрд░ рдореЗрд░реЗ .bash_functions рдХреЛ рд╕рдордп-рд╕рдордп рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд┐рдбрд▓рд░ рдПрдХ scp рдХреЛ рд▓рд╛рдд рдорд╛рд░ рд░рд╣рд╛ рдерд╛ :)

$ cat `which profsync`
#!/bin/bash

source ~/.config/profsyncrc

cd $basepath

for host in ${hosts_scp[@]} ; do
echo "Syncronizing ${host}..."
for target in ${targets[@]} ; do
scp -r $target $host:$target
done;
done;


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд┐рдиреНрдпрд╛рд╕ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

$ cat ~/.config/profsyncrc
hosts_scp=(campus amignode) #
basepath="$HOME" # ( , )
targets=('.bashrc' '.bash_functions' '.screenrc' '.nanorc') #


scp рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рднреА рд╕рдордЭрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдХрдо рд╕реЗ рдХрдо .config рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :)
рдПрдХ рдмрд╛рд░ рдЯреНрдпреВрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЧреБрдЪреНрдЫрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдХрд╛рдо рдореЗрдВ рдЖрдпрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдЖрдПрдЧрд╛ред
рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!

Source: https://habr.com/ru/post/In116329/


All Articles