|
本人linux才起步,要写这样一个shell脚本:
目的将uid为500~999的用户主目录定期以tar.gz格式打包到/backupdata目录下(uid500~599的周一备份,600~699的周二备份......800~899的周五备份),要求.tar.gz包名为日期和用户名,比如:2006年11月4把用户user001主目录打包到/backupdata/20061104user001.tar.gz
以下是我写的,不过有错误,望各位法师帮忙改正下啊,谢谢了~
#!/bin/bash
if [ -d /backupdata ]
then exit 1
else mkdir /backupdata
exit 0
fi
riqi=`date +%Y%m%d`
xingqi=`date +%w`
beifen()
{
while read name dir
do
if `tar -cf /backupdata/$riqi$name.tar.gz $dir`
then exit 0
else tar -cf /backupdata/$riqi$name.tar.gz $dir 2> /var/log/backupdata.log
exit 1
fi
done < getfile.txt
}
if [ $xingqi -eq 1 ]
then sed 's/:/ /g' /etc/passwd | awk -F: '($3>499 && $3<600){print$1,$6}' >getfile.txt
beifen
elif [ $xingqi -eq 2 ]
then sed 's/:/ /g' /etc/passwd | awk -F: '($3>599 && $3<700){print$1,$6}' >getfile.txt
beifen
elif [ $xingqi -eq 3 ]
then sed 's/:/ /g' /etc/passwd | awk -F: '($3>699 && $3<800){print$1,$6}' >getfile.txt
beifen
elif [ $xingqi -eq 4 ]
then sed 's/:/ /g' /etc/passwd | awk -F: '($3>799 && $3<900){print$1,$6}' >getfile.txt
beifen
elif [ $xingqi -eq 5 ]
then sed 's/:/ /g' /etc/passwd | awk -F: '($3>899 && $3<1000){print$1,$6}' >getfile.txt
beifen
else exit 1
fi
以上是脚本内容不知道哪里有问题,劳烦各位大虾和法师帮忙改正啊,
非常感谢了~~ |
|