最终编辑:$DATE
变量让我搞砸了。出于某种原因,当我重新格式化它时,它工作正常。有谁知道为什么这是一个问题?
这是最终的备份脚本:
#!/bin/bash
#Vars
OUTPATH=/root/Storage/Backups
DATE=$(date +%d-%b)
#Deletes backups that are more than 2 days old
find "$OUTPATH"/* -mtime +2 -type f -delete
#Actual backup operation
dd if=/dev/mmcblk0 | gzip -1 - | dd of="$OUTPATH"/bpi-"$DATE".img.gz bs=512 count=60831745
旧脚本:
#!/bin/bash
#Vars
OUTPATH=~/Storage/Backups
DATE=$(date +%d-%b_%H:%M)
#Deletes backups that are more than 2 days old
find "$OUTPATH"/* -mtime +2 -type f -delete
#Actual backup operation
dd if=/dev/mmcblk0 | gzip -1 - | dd of="$OUTPATH"/bpi_"$DATE".img.gz bs=512 count=60831745
这是一个将我的香蕉派图像备份到外部硬盘的脚本。我是 bash 脚本的新手,所以我知道这很可能是一个简单的修复,但这是我的问题:
我正在从 ~/scripts 运行脚本
并且输出文件是 ~/Storage/Backups (外部硬盘的挂载点,在我的 /etc/fstab.
这些命令在 时工作正常OUTPATH=.
,即它只是备份到运行脚本的当前目录。我知道我可以将脚本移动到备份文件夹并从那里运行它,但我正在尝试将它添加到我的 crontab 中,所以如果我可以将所有脚本保存在一个目录中,只是为了组织目的,那就太好了。
只是想知道如何正确地使脚本将我的图像写入该$OUTPATH
变量。
编辑:我尝试将$OUTPATH
变量更改为位于的测试目录/dev/root/
(在脚本本身所在的同一设备上)并且它有效,所以我认为这只是尝试将图像写入设备的问题不同于脚本本身所在的那个。
我/etc/fstab
想使用的与外部硬盘相关的行如下:
/dev/sdb1 /root/Storage exfat defaults 0 0
该/root/Storage/Backups
文件夹是我尝试将图像写入的位置