为什么我的脚本中的tar与手动使用tar的行为有所不同

哈里斯·卡万(Harrys Kavan)

我正在为我的电子邮件和云服务编写备份脚本。
为简单起见,我仅在此处发布了邮件备份部分。

基本上,我有一台主机,其中运行着一些虚拟盒子。
这些虚拟盒子访问主机机器,/mnt/alias/storage/其中有vmail文件夹(在我的情况下称为shishaMail)

(以下可能不是必要的信息)
我想说的是,其中的所有内容/mnt/alias/都是带有漂亮名字ln -sfrom /mnt/rack/*
在该机架文件夹中是驱动器的支架。
(没有必要的信息END)

这是我的剧本

#!/bin/bash
# backup script 

BASEURL="/mnt/alias/backup"
MAILURL="/mnt/alias/storage/shishaMail"

DAY=`eval date +"%d"`
MONTH=`eval date +"%m"`
YEAR=`eval date +"%Y"`
HOUR=`eval date +"%H"`
MINUTE=`eval date +"%M"`

PIMPURL=$BASEURL/$YEAR/$MONTH/$DAY/

COMMAND1="cd $PIMPURL"
$COMMAND1 2>/dev/null

if [ $? -eq 0 ]
then
                echo "Command 1 was successful"
else
                echo "There ain't folders!!"
                echo "I'll mkdir some!"

                COMMAND2="mkdir -p $PIMPURL"
                $COMMAND2 2>/dev/null
fi
if [ $? -eq 0 ]
then
                echo 'Command 1 or/and 2 was successful'
                echo "STARTING MAIL BACKUP"

                COMMAND3="tar -cvzf '"$PIMPURL"shisha_"$HOUR"_"$MINUTE"_.data.tar.gz' "$MAILURL
                echo $COMMAND3
                $COMMAND3 2>/dev/null

                if [ $? -eq 0 ]
                then
                                echo 'MAIL BACKUP SUCCESSFULL'
                else
                                echo "FAILURE!!"
                fi
else
                echo 'Nope! Must be some kind of strage Err0r!!'
fi

因此,如果执行此脚本,则会出现以下错误:

命令1成功执行
命令1或/和2成功执行
启动邮件备份
tar -czvf'/mnt/alias/backup/2014/06/13/shisha_10_25_.data.tar.gz'/ mnt / alias / storage / shishaMail
tar:从成员名称
tar(子级)中删除前导“ /”:'/mnt/alias/backup/2014/06/13/shisha_10_25_.data.tar.gz':无法打开:无此类文件或目录
tar(子级):错误无法恢复:现在退出
失败!!

如您所见echo,COMMAND3是一个

tar -czvf'/mnt/alias/backup/2014/06/13/shisha_10_21_.data.tar.gz'/ mnt / alias / storage / shishaMail

而且,如果我手动执行此命令,则与执行脚本的用户相同(在两种情况下均为root用户),脚本将起作用。
我不明白为什么脚本会抱怨目录不存在,因为目录必须存在,但*.tar.gz文件除外,因为该文件必须由创建tar

Lornix

尝试从COMMAND3创建行中删除单引号:

COMMAND3="tar -cvzf "$PIMPURL"shisha_"$HOUR"_"$MINUTE"_.data.tar.gz "$MAILURL

当您手动执行该行时,shell会在tar看不到参数之前删除引号。

您没有在文件名中插入空格,因此引号不是必需的。实际上,您可以进一步简化该行:

COMMAND3="tar -cvzf ${PIMPURL}shisha_${HOUR}_${MINUTE}_.data.tar.gz ${MAILURL}"

花括号用于分隔变量名,否则将尝试扩展“ PIMPURLshisha”,可能不是您想要的。使用它们永远不会有伤害,因为它也使变量脱颖而出,更容易挑选出来。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当计数器在我的班级较大时,为什么Java线程的行为会有所不同?

来自分类Dev

在python中,为什么sys.stdout.write()在命令行内部运行和在脚本内部运行之间的行为有所不同

来自分类Dev

在这些示例中,为什么“ last”在Perl中的行为有所不同?

来自分类Dev

为什么我在Codename One模拟器中获得的行为与在真正的Android设备上有所不同?

来自分类Dev

为什么单个元素哈希表在Powershell中的行为有所不同?

来自分类Dev

如果我将脚本命名为“ string.py”或“ math.py”,则“导入”操作的行为会有所不同。为什么会这样呢?

来自分类Dev

为什么通过Crontab启动的脚本的行为有所不同?

来自分类Dev

为什么numpy导入的行为有所不同?

来自分类Dev

为什么groupby操作的行为有所不同

来自分类Dev

Google表格脚本getNextDataCell()在使用FILTER或UNIQUE公式的列中的行为有所不同

来自分类Dev

为什么在具有一级索引的MultiIndex列的熊猫DataFrame中,行为会有所不同?

来自分类Dev

为什么NumberFormatInfo在Azure环境中的行为有所不同?

来自分类Dev

为什么当我使用完整路径而不是当前路径时,`rename`的行为会有所不同?

来自分类Dev

为什么在此示例中,“ grep”的行为有所不同?

来自分类Dev

<|>在Parsec中-为什么这些示例的行为有所不同?

来自分类Dev

为什么JavaScript“删除”运算符在不同浏览器中的行为会有所不同?

来自分类Dev

当类中的counter较大时,为什么java线程的行为会有所不同?

来自分类Dev

为什么我的动画与手机/平板电脑(密度)相比有所不同?如何防止它?

来自分类Dev

为什么我的html中的类顺序会有所不同?

来自分类Dev

为什么bash的脚本与stdin的行为有所不同?

来自分类Dev

为什么回显$?在此脚本中运行时是否有所不同?

来自分类Dev

Powershell脚本在TeamCity中的行为有所不同

来自分类Dev

在这些示例中,为什么“ last”在Perl中的行为有所不同?

来自分类Dev

为什么hide()的行为有所不同?

来自分类Dev

jQuery DataTable:手动设置时,dom参数显示布局的方式有所不同

来自分类Dev

为什么to_sym的行为有所不同?

来自分类Dev

与手动运行相比,通过 git 运行时使用 echo -n 预提交钩子的行为有所不同

来自分类Dev

如果我使用 glFrustum,为什么绘制的这个对象会有所不同?

来自分类Dev

为什么当我使用“end”或“\n”或“”(空格)语句时会有所不同?

Related 相关文章

  1. 1

    当计数器在我的班级较大时,为什么Java线程的行为会有所不同?

  2. 2

    在python中,为什么sys.stdout.write()在命令行内部运行和在脚本内部运行之间的行为有所不同

  3. 3

    在这些示例中,为什么“ last”在Perl中的行为有所不同?

  4. 4

    为什么我在Codename One模拟器中获得的行为与在真正的Android设备上有所不同?

  5. 5

    为什么单个元素哈希表在Powershell中的行为有所不同?

  6. 6

    如果我将脚本命名为“ string.py”或“ math.py”,则“导入”操作的行为会有所不同。为什么会这样呢?

  7. 7

    为什么通过Crontab启动的脚本的行为有所不同?

  8. 8

    为什么numpy导入的行为有所不同?

  9. 9

    为什么groupby操作的行为有所不同

  10. 10

    Google表格脚本getNextDataCell()在使用FILTER或UNIQUE公式的列中的行为有所不同

  11. 11

    为什么在具有一级索引的MultiIndex列的熊猫DataFrame中,行为会有所不同?

  12. 12

    为什么NumberFormatInfo在Azure环境中的行为有所不同?

  13. 13

    为什么当我使用完整路径而不是当前路径时,`rename`的行为会有所不同?

  14. 14

    为什么在此示例中,“ grep”的行为有所不同?

  15. 15

    <|>在Parsec中-为什么这些示例的行为有所不同?

  16. 16

    为什么JavaScript“删除”运算符在不同浏览器中的行为会有所不同?

  17. 17

    当类中的counter较大时,为什么java线程的行为会有所不同?

  18. 18

    为什么我的动画与手机/平板电脑(密度)相比有所不同?如何防止它?

  19. 19

    为什么我的html中的类顺序会有所不同?

  20. 20

    为什么bash的脚本与stdin的行为有所不同?

  21. 21

    为什么回显$?在此脚本中运行时是否有所不同?

  22. 22

    Powershell脚本在TeamCity中的行为有所不同

  23. 23

    在这些示例中,为什么“ last”在Perl中的行为有所不同?

  24. 24

    为什么hide()的行为有所不同?

  25. 25

    jQuery DataTable:手动设置时,dom参数显示布局的方式有所不同

  26. 26

    为什么to_sym的行为有所不同?

  27. 27

    与手动运行相比,通过 git 运行时使用 echo -n 预提交钩子的行为有所不同

  28. 28

    如果我使用 glFrustum,为什么绘制的这个对象会有所不同?

  29. 29

    为什么当我使用“end”或“\n”或“”(空格)语句时会有所不同?

热门标签

归档