系统为 ubuntu
自己写了一脚本执行 tar 压缩文件:
#!/bin/sh
tar -zcvf /home/j/backup/16/dbBackup/$(date +%y%m%d.tar.gz) db/
find /home/j/backup/16/dbBackup/ -type f -mtime +3 -exec rm -rf {} \;
单独执行不会出现错误,使用 crontab 定时执行在 mail 出现
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin>
X-Cron-Env: <HOME=/home/j>
X-Cron-Env: <LOGNAME=j>
Message-Id: <20180313014101.506EF3C0072@j>
Date: Tue, 13 Mar 2018 09:41:01 +0800 (CST)
tar: db:无法 stat: 没有那个文件或目录
tar: 由于前次错误,将以上次的错误状态退出
crontab 文件为:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * cd / && run-parts --report /etc/cron.hourly
25 6 * * * test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
41 9 * * * /home/j/backup/16/db.sh
1
CloudMx 2018-03-13 09:48:27 +08:00
db 写个绝对路径。
|
3
CloudMx 2018-03-13 10:00:49 +08:00
tar: db:无法 stat: 没有那个文件或目录
系统找不到 db/,找不到你要压缩的路径,把路径写成 /xxxx/xxxx/xxx/db 试下。 |
5
gzwawj OP @CloudMx 使用了绝对路径后,绝对路径也压缩到文件中了,我不想把前面的路径都压缩到文件中,这个怎么解决啊?感谢你的回答
|
6
stephenyin 2018-03-13 10:09:15 +08:00
crontab 是 su 执行的吧, 和你单步的权限不一样, 脚本里 source 下你当前用户的 .bashrc 试试.
|
7
CloudMx 2018-03-13 10:26:19 +08:00
@gzwawj tar -zcvf /home/j/backup/16/dbBackup/$(date +%y%m%d.tar.gz) -C /data/test/ db/
-C /data/test/db 这个是绝对路径 -C /data/test/空格 db/ db/相对于 /data/test/ 试试 |
10
kkxxxxxxx 2018-03-13 11:22:29 +08:00
tar -zcvf /home/j/backup/16/dbBackup/$(date +%y%m%d.tar.gz) -C /home/j/backup/16/ db/ >> /dev/null
|
11
gzwawj OP 感谢你们的回答,我使用 cd 到目录,把脚本中 tar 命令的-v 参数去掉了,mail 中没有显示压缩文件的目录
|