Bash 脚本在 WebDAV 中创建目录时失败
Bash script fails on creating directory in WebDAV
为了我的 VPS,我创建了一个 bash 脚本,它将 运行 每三个小时通过一个 cronjob 来备份我的 VPS。所有数据库(在本例中)都将被转储并移动到通过 WebDAV 连接的存储服务上的新文件夹。
它 运行 直到昨天才完美。脚本给我错误:
mkdir: cannot create directory ‘/stack/VPS-Backups/Srv1/Database/07-10-2016_12:00’: No such file or directory
脚本(哪里出错):
#!/bin/bash
DB_BACKUP="/stack/VPS-Backups/Srv1/Database/`date +%d-%m-%Y`_`date +%H:%M`"
# Create the backup directory
mkdir $DB_BACKUP
我已经 checked/procees 以下内容:
- 重新挂载 WebDAV
- 检查目录结构“/stack/VPS-Backups/Srv1/Database”是否存在
- WebDAV 的URL/username/password没有改变
- 存储存储的供应商没有改变任何东西
我能做什么?感谢您的帮助! :-)
#!/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"
此处封装的显着变化:
- 从
mkdir
中分离出 cd
,以阐明哪些操作失败了。
- 删除 POSIX 不保证在文件名中有效的字符(portable filename character set)。实际上,这意味着冒号需要去掉。
此外,这遵循 ISO 8601 日期格式准则。这意味着其他软件将能够将您的目录名称解析为开箱即用的日期。使用 YYYYMMDD 还可以防止 MMDDYYYY 和 DDMMYYYY 之间的混淆,并使您的名称的 ASCII 排序顺序与其逻辑排序顺序相匹配,因此您可以使用标准 UNIX 工具进行范围选择。
为了我的 VPS,我创建了一个 bash 脚本,它将 运行 每三个小时通过一个 cronjob 来备份我的 VPS。所有数据库(在本例中)都将被转储并移动到通过 WebDAV 连接的存储服务上的新文件夹。
它 运行 直到昨天才完美。脚本给我错误:
mkdir: cannot create directory ‘/stack/VPS-Backups/Srv1/Database/07-10-2016_12:00’: No such file or directory
脚本(哪里出错):
#!/bin/bash
DB_BACKUP="/stack/VPS-Backups/Srv1/Database/`date +%d-%m-%Y`_`date +%H:%M`"
# Create the backup directory
mkdir $DB_BACKUP
我已经 checked/procees 以下内容:
- 重新挂载 WebDAV
- 检查目录结构“/stack/VPS-Backups/Srv1/Database”是否存在
- WebDAV 的URL/username/password没有改变
- 存储存储的供应商没有改变任何东西
我能做什么?感谢您的帮助! :-)
#!/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"
此处封装的显着变化:
- 从
mkdir
中分离出cd
,以阐明哪些操作失败了。 - 删除 POSIX 不保证在文件名中有效的字符(portable filename character set)。实际上,这意味着冒号需要去掉。
此外,这遵循 ISO 8601 日期格式准则。这意味着其他软件将能够将您的目录名称解析为开箱即用的日期。使用 YYYYMMDD 还可以防止 MMDDYYYY 和 DDMMYYYY 之间的混淆,并使您的名称的 ASCII 排序顺序与其逻辑排序顺序相匹配,因此您可以使用标准 UNIX 工具进行范围选择。