1. 上次用nginx做了静态资源, 图片图床. 同步是个问题.
- 单纯使用scp每次传输, 覆盖文件, 文件更新时间就没了.
- 思考有没有更好的工具.
2. 网上查询发现rsync, 同步神器了.
安装, Homebrew.
brew install rsync
参数解释-r目录递归,u增量更新(本地文件时间比上标文件新才更新), t保留修改时间. –exclude排除文件
在本地删除文件后, rsync同步到服务器端时是不会删除对应的文件的, 需要加上参数–delete, 会删除服务端比本地多余的文件, 重要文件同步谨慎使用.
${HOME}/Pictures/img/表示上传img文件夹下的所有文件, 不上传img. ${HOME}/Pictures/img表示上传img这个文件夹. 所以这个要注意
vim .zshrc
alias up="rsync -rut --exclude '.DS_Store'"
uponestoblog(){
echo "\033[42;30m Begin rsync Files... \033[0m"
SERVER_PATH="img/blog/"
for i in "$@"; do
rsync -rut --exclude '.DS_Store' $i b:${SERVER_PATH}
done
}
upblog(){
LOCAL_PATH="${HOME}/Pictures/img/blog/"
SERVER_PATH="img/blog/"
echo "\033[42;30m Begin rsync ${LOCAL_PATH} b:${SERVER_PATH}... \033[0m"
rsync -rut --exclude '.DS_Store' ${LOCAL_PATH} b:${SERVER_PATH}
echo "\033[42;30m Finash. \033[0m"
}
upimg(){
LOCAL_PATH="${HOME}/Pictures/img/"
SERVER_PATH="img/"
echo "\033[42;30m Begin rsync ${LOCAL_PATH} b:${SERVER_PATH}... \033[0m"
rsync -rut --exclude '.DS_Store' ${LOCAL_PATH} b:${SERVER_PATH}
echo "\033[42;30m Finash. \033[0m"
}
重新生效.zshrc
source .zshrc
3. 开心上传图床了, 平时用的就几个文件夹, 需要参数化嘛😃
使用alias重命名的up命令, b是服务器名称.参考SSH密钥配置
upimg
# 或者up命令
up ~/Pictures/img/ b:img/