分页: 1 / 1

如何编写一个shell,拷贝一个备份文件后把原文件清空?

发表于 : 2011-01-30 9:38
khler
我就是想备份一下我的一个程序的日志,结果在shell中执行 cp 命令时提示没有权限:

代码: 全选

#! /bin/sh
currdate=$( date +%Y%m%d )
logfile="/usr/local/twslog/tws.log"
cp $logfile "/usr/local/twslog/$currdate.log"
cat "" > $logfile
运行时提示:
cp: 无法打开 “/usr/local/twslog/tws.log” 读取数据: Permission denied
./twslogbaker.sh: 5: cannot create /usr/local/twslog/tws.log: Permission denied

各位老大,在shell中如何获取权限啊?上面的问题如何处理?

Re: 如何编写一个shell,拷贝一个备份文件后把原文件清空?

发表于 : 2011-01-30 10:09
灰色小狼
sudo执行脚本

Re: 如何编写一个shell,拷贝一个备份文件后把原文件清空?

发表于 : 2011-01-30 10:33
大宝
为何不用“mv”,而是用“cp”?

Re: 如何编写一个shell,拷贝一个备份文件后把原文件清空?

发表于 : 2011-01-30 13:55
khler
2 楼 灰色小狼 :
我的脚本被另一个脚本调用,用sudo不行吧?要手工输入密码?

3 楼 大宝 :

mv 替换 cp , good~~~~

Re: 如何编写一个shell,拷贝一个备份文件后把原文件清空?

发表于 : 2011-02-01 16:07
tusooa
no,no,no...
log文件一般是要即时写入的,mv之后可能会导致错误。

代码: 全选

cat "" > $logfile
用法是错的。不能cat '', 要echo > xxx

sudo,可以visudo, 自己改,让执行这个脚本不用输密码。

Re: 如何编写一个shell,拷贝一个备份文件后把原文件清空?

发表于 : 2011-02-01 18:16
ebok

代码: 全选

cat /dev/null >filename

Re: 如何编写一个shell,拷贝一个备份文件后把原文件清空?

发表于 : 2011-02-01 21:32
大宝
他可以把这个执行放在关机的时候进行,只是 dpkg 等日志移走的确不妥——但我的 U 盘系统就是用类似的手段干的,目的是为了减少读写 U 盘的频次

Re: 如何编写一个shell,拷贝一个备份文件后把原文件清空?

发表于 : 2011-02-10 16:58
byZh
你的想法早就有人实现了,试一试
logrotate