linux shell 编程

设计一个shell 程序 ,在每月第一天 备份并压缩 /etc 目录的所有内容。存放在/root/bak 目录里。文件名为如下形式 ,yymmdd-etc yy为年,mm为月,dd为日期。shell程序fileback存放在/usr/bin 目录下。
这是我我们的一个考试题 , 我不会做 。 希望哥哥们 帮我做下 。 谢谢了 。

(1)编写shell程序fileback:
#!/bin/sh
DIRNAME=`ls /root | grep bak`
if [ -z "$DIRNAME" ] ; then
mkdir /root/bak
cd /root/bak
fi
YY=`date +%y`
MM=`date +%m`
DD=`date +%d`
BACKETC=$YY$MM$DD_etc.tar.gz
tar zcvf $BACKETC /etc
echo "fileback finished!"
(2)编写任务定时器:
echo "0 0 1 * * /bin/sh /usr/bin/fileback" >; /root/etcbakcron
crontab /root/etcbakcron
或使用crontab -e 命令添加定时任务:
0 1 * * * /bin/sh /usr/bin/fileback
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-12-15
程序内容很简单,如下:
#!/bin/sh
filename=`date +%y``date +%m``date +%d`
tar czvf /root/bak/$filename-etc.tgz /etc

最后使用crontab建立一个计划作业可,使得该程序可以在每月的第一天下午六点执行。作业内容如下:
0 18 1 * * /usr/bin/fileback
第2个回答  2009-12-15
为什么没有人用
date +%y%m%d
相似回答