Bash脚本在WebDAV中创建目录时失败

时间:2016-10-06 22:30:59

标签: linux bash ubuntu webdav

对于我的VPS,我创建了一个bash脚本,每三个小时由cronjob运行一次,用于备份我的VPS。所有数据库(在本例中)都将被转储并移动到通过WebDAV连接的存储服务上的新文件夹。

它一直运行到昨天。该脚本给我错误:

  

mkdir:无法创建目录'/ stack / VPS-Backups / Srv1 / Database / 07-10-2016_12:00':没有这样的文件或目录

脚本(出错的地方):

#!/bin/bash

DB_BACKUP="/stack/VPS-Backups/Srv1/Database/`date +%d-%m-%Y`_`date +%H:%M`"

# Create the backup directory
mkdir $DB_BACKUP

我已经检查/处理了以下事项:

  • 重新安装WebDAV
  • 检查目录结构“/ stack / VPS-Backups / Srv1 / Database”是否存在
  • WebDAV的网址/用户名/密码未更改
  • 存储存储的供应商没有改变任何东西

我该怎么办?谢谢你的帮助! : - )

1 个答案:

答案 0 :(得分:2)

Weakset

此处封装的显着更改:

  • #!/bin/bash dirname=$(date '+%Y%m%dT%H%M') # subset of an ISO 8601 date (only missing %S) cd /stack/VPS-Backups/Srv1/Database || exit mkdir -- "$dirname" 中删除cd,以澄清哪些操作失败。
  • 删除POSIX无法保证在文件名中有效的字符(portable filename character set)。在实践中,这意味着冒号需要去。

此外,这遵循日期格式的ISO 8601指南。这意味着其他软件将能够将您的目录名称解析为开箱即用的日期。使用YYYYMMDD还可以防止MMDDYYYY和DDMMYYYY之间的混淆,并使您的名称的ASCII排序顺序与其逻辑排序顺序相匹配,因此您可以使用标准UNIX工具进行范围选择。