Compare commits
2 Commits
5ecba558fd
...
74de7e519a
Author | SHA1 | Date | |
---|---|---|---|
74de7e519a | |||
a94b88889a |
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
backup.conf
|
*.conf
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
# WebDav 服务器
|
# WebDav 服务器
|
||||||
server="https://localhost"
|
server="https://localhost/"
|
||||||
|
|
||||||
|
# WebDav 服务器路径
|
||||||
|
server-path=""
|
||||||
|
|
||||||
# 用户
|
# 用户
|
||||||
user=""
|
user=""
|
||||||
|
@ -14,7 +14,8 @@ show_help() {
|
|||||||
echo
|
echo
|
||||||
echo "选项:"
|
echo "选项:"
|
||||||
__opt "-x, --prefix <name>" "备份文件前缀"
|
__opt "-x, --prefix <name>" "备份文件前缀"
|
||||||
__opt "-s, --server <url>" "WebDav 服务器地址"
|
__opt "-s, --server <url>" "WebDav 服务器地址,以 \"/\" 结束"
|
||||||
|
__opt "-P, --server-path <path>" "WebDav 备份路径,以 \"/\" 结束"
|
||||||
__opt "-u, --user <user>" "WebDav 用户名"
|
__opt "-u, --user <user>" "WebDav 用户名"
|
||||||
__opt "-p, --pass <password>" "WebDav 密码"
|
__opt "-p, --pass <password>" "WebDav 密码"
|
||||||
__opt "-k, --keeps n" "保留最近几个备份文件。默认为0,不删除备份文件"
|
__opt "-k, --keeps n" "保留最近几个备份文件。默认为0,不删除备份文件"
|
||||||
@ -35,6 +36,7 @@ verbose=false
|
|||||||
tmpfs="/tmp"
|
tmpfs="/tmp"
|
||||||
prefix="backup"
|
prefix="backup"
|
||||||
server="http://your-site/dav"
|
server="http://your-site/dav"
|
||||||
|
server_path=
|
||||||
user="guest"
|
user="guest"
|
||||||
pass=""
|
pass=""
|
||||||
backup_path=-
|
backup_path=-
|
||||||
@ -104,7 +106,7 @@ upload() {
|
|||||||
echo -n "上传备份文件: 第 $retry_count 次重试... "
|
echo -n "上传备份文件: 第 $retry_count 次重试... "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
__try curl -sS --user "$user:$pass" -T $1 "$server" -f $curl_extra_args
|
__try curl -sS --user "$user:$pass" -T $1 "$server$server_path" -f $curl_extra_args
|
||||||
|
|
||||||
if __catch e; then
|
if __catch e; then
|
||||||
__color $RED '错误\n'
|
__color $RED '错误\n'
|
||||||
@ -121,7 +123,7 @@ upload() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get_file_list() {
|
get_file_list() {
|
||||||
flist_html=$(curl -sS --user "$user:$pass" -X PROPFIND "$server" -f --header 'Depth: 1' $curl_extra_args)
|
flist_html=$(curl -sS --user "$user:$pass" -X PROPFIND "$server$server_path" -f --header 'Depth: 1' $curl_extra_args)
|
||||||
echo $flist_html | grep -Po '<D:href>.+?\/\K(.+?)(?=<\/D:href>)' -o | grep $prefix | sort
|
echo $flist_html | grep -Po '<D:href>.+?\/\K(.+?)(?=<\/D:href>)' -o | grep $prefix | sort
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,7 +138,7 @@ delete_file() {
|
|||||||
echo -n "删除备份 $file: 第 $retry_count 次重试... "
|
echo -n "删除备份 $file: 第 $retry_count 次重试... "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
__try curl -sS --user "$user:$pass" -X DELETE "$server$file" -f $curl_extra_args
|
__try curl -sS --user "$user:$pass" -X DELETE "$server$server_path$file" -f $curl_extra_args
|
||||||
|
|
||||||
if __catch e; then
|
if __catch e; then
|
||||||
__color $RED '错误\n'
|
__color $RED '错误\n'
|
||||||
@ -251,8 +253,8 @@ if [[ ${PIPESTATUS[0]} -ne 4 ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
OPTIONS=c:vhVx:s:u:p:k:I
|
OPTIONS=c:vhVx:s:P:u:p:k:I
|
||||||
LONGOPTS=config,verbose,help,version,prefix:,server:,user:,pass:,keeps:,ignore-cert
|
LONGOPTS=config,verbose,help,version,prefix:,server:,server-path:,user:,pass:,keeps:,ignore-cert
|
||||||
|
|
||||||
! PARSED=$(getopt --options=$OPTIONS --longoptions=$LONGOPTS --name "$0" -- "$@")
|
! PARSED=$(getopt --options=$OPTIONS --longoptions=$LONGOPTS --name "$0" -- "$@")
|
||||||
if [[ ${PIPESTATUS[0]} -ne 0 ]]; then
|
if [[ ${PIPESTATUS[0]} -ne 0 ]]; then
|
||||||
@ -291,6 +293,10 @@ while true; do
|
|||||||
server="$2"
|
server="$2"
|
||||||
shift 2
|
shift 2
|
||||||
;;
|
;;
|
||||||
|
-P|--server-path)
|
||||||
|
server_path="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
-u|--user)
|
-u|--user)
|
||||||
user="$2"
|
user="$2"
|
||||||
shift 2
|
shift 2
|
||||||
|
Loading…
x
Reference in New Issue
Block a user