技术解析

Shell 调用 tar 打包总是报错!
0
2021-07-04 23:24:03
idczone

最近在折腾一个脚本,但是总遇到 一个报错!

脚本在 https://github.com/jalena/vps-backup/blob/master/backup.sh (错误地方在#97 )

每次执行的时候以下代码就包 tar 没有 e 参数!!

function configuration(){
nginxcnf='find / -name nginx.conf |grep -v root'
tar cPf nginx
$(date +%Y%m%d).tar.gz $NGINXPATH
echo -e "package nginx
$(date +%Y%m%d).tar.gz success!"
tar rPf nginx_$(date +%Y%m%d).tar.gz $nginx_cnf
echo -e "Additional file successfully"
}

求大神解答写


错误提示都不贴出来……

两个 tar 命令前面加 echo ,看看实际执行的指令是什么

nginxcnf=`find / -name nginx.conf |grep -v root`
是`不是'

看了下,你 shell 用的很不规范。即使这个地方修复了其他地方肯定也有 bug 。用 shellcheck 过一边吧

set -ex 或者 set -x 看看详细执行信息。
打包是 tar zcPf 吧?你代码在另外一个地方用的是 tar zcPf ,为什么这里用 tar cPf

能不能先学学 markdown ……
z 只是要求 gzip 而已。
干脆不要用反引号用$( ) 大法……
shellcheck 目前为止还不会提醒 function xxx 这种坏习惯。

funciton 啥的就是看起来碍不碍眼。关键是楼主变量没有加引号噗哈哈。
``` shell
var=
rm -rf /usr/local/$var
```
然后 /usr/local 目录就没了
数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服