gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 09:22:55 25 4
gpt4 key购买 nike

对于我的 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

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

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

我能做什么?感谢您的帮助! :-)

最佳答案

#!/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 工具进行范围选择。

关于linux - Bash 脚本在 WebDAV 中创建目录时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39906612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com