Shell 脚本任务
1.编写一个名为ex1.sh的脚本,它包括以下内容:
(1)包含一段注释,列出你的名字、脚本的名称
(2)获取当前用户名,显示用户问候信息
(3)显示当前的日期和时间
(4)显示这个 月的日历
(5)显示你机器的主机名
(6)显示当前操作系统的名称和版本
(7)显示父目录中所有文件的列表
(8)显示变量TERM、PATH和HOME的值
#! /bin/bash
#张三 ex1.sh
echo "$LOGNAME,welcome to Linux"
echo -e "当前的日期和时间是:\n`date +%Y%m%d_%H%M%S`"
echo -e "这个月的日历:\n`cal 4 2020`"
echo -e "机器的主机名:\n$HOSTNAME"
echo -e "当前操作系统的名称和版本:\n`uname -a`"
echo -e "父目录所有文件的列表:\n`ls ../`"
echo -e "TERM:\n$TERM"
echo -e "PATH:\n$PATH"
echo -e "HOME:\n$HOME"
2.编写一个脚本为ex2.sh,在当前家目录下创建文件夹test(mkdir -v 创建不存在的文件夹),通过参数传递一个文件名,将文件复制到~/test下,并命名为”文件名_年月日时分秒”
#! /bin/bash
mkdir -v test
cp $1 ~/test/$1_`date +%Y%m%d%H%M%S`
3…每天上午和下午下班前必须对数据进行双硬盘备份,且要求保存最近3次备份。待备份数据存放在当前用户家目录的/workdata目录中,最近三次备份文件分别命名为worknewdata.tar、work2nddata.tar和work3rddata.tar,用~/disk1和/dev/disk2模拟双硬盘,完成双硬盘备份的功能。
!前提:当前用户对 /dev/disk2/目录有创建和删除文件的权限(可参考chmod g+wx /dev/disk2)
#! /bin/bash
mkdir -v test
cp $1 ~/test/$1_`date +%Y%m%d%H%M%S`
[ssy@localhost ~]$ cat autobackupdate.sh
#! /bin/bash
#删除 work3rddata.tar
rm /home/ssy/disk1/work3rddata.tar
#将work2nddata.tar重命名为work3rddata.tar
mv /home/ssy/disk1/work2nddata.tar /home/ssy/disk1/work3rddata.tar
#将worknewdata.tar重命名为work2nddata.tar
mv /home/ssy/disk1/worknewdata.tar /home/ssy/disk1/work2nddata.tar
#打包待备份数据文件
tar -cf /home/ssy/disk1/worknewdata.tar /home/ssy/workdata
#删除第二块硬盘中的三份备份文件
rm /dev/disk2/worknewdata.tar /dev/disk2/work2nddata.tar /dev/disk2/work3rddata.tar
#重新向第二块硬盘备份数据文件
cp /home/ssy/disk1/worknewdata.tar /dev/disk2/
cp /home/ssy/disk1/work2nddata.tar /dev/disk2/
cp /home/ssy/disk1/work3rddata.tar /dev/disk2/
echo "Backup file successful"