我在一个shell脚本中设定有如下代码。
bakname=`date -s "-1 days" +%Y%m%d`rm -f /home/oracle/newdata.dmp.gzrm -f /home/oracle/newdata.dmpcp /home/oracle/bakdata/${bakname}.dmp.gz /home/oracle/newdata.dmp.gzgunzip /home/oracle/newdata.dmp.gz运行该脚本时,会报一个错
date: cannot set date: Operation not permitted谁能解释一下,为什么会有这个错?虽然报该错不会影响脚本运行。
请问如何实现上述代码的同样功能,但又不报这个错呢?
bakname=`date -s "-1 days" +%Y%m%d`rm -f /home/oracle/newdata.dmp.gzrm -f /home/oracle/newdata.dmpcp /home/oracle/bakdata/${bakname}.dmp.gz /home/oracle/newdata.dmp.gzgunzip /home/oracle/newdata.dmp.gz运行该脚本时,会报一个错
date: cannot set date: Operation not permitted谁能解释一下,为什么会有这个错?虽然报该错不会影响脚本运行。
请问如何实现上述代码的同样功能,但又不报这个错呢?
set time described by STRINGORACLE用户无权限设置主机时间。你取变量的方式,换下。
如果需要以oracle用户处理,使用su - oracle 即可
比如今天是2010年4月21日,要拷贝的就是昨天的备份文件,即20100421.dmp.gz。
如果只截取,不设定,这样应该就不会报这个错了。
把bakname=`date -s "-1 days" +%Y%m%d`
修改成
bakname=`date -d yesterday +%Y%m%d`修改后的全部代码如下:
bakname=`date -d yesterday +%Y%m%d`rm -f /home/oracle/newdata.dmp.gzrm -f /home/oracle/newdata.dmpcp /home/oracle/bakdata/${bakname}.dmp.gz /home/oracle/newdata.dmp.gzgunzip /home/oracle/newdata.dmp.gz