Linux

本文介绍了一个使用Linux shell脚本实现文件备份和恢复的小项目。通过编写函数进行目录备份和恢复,利用tar命令进行文件打包与解包。用户交互界面提供了菜单选项供选择,确保操作的简便性。同时,脚本包含错误处理和目录验证功能,确保了程序的健壮性。
摘要由CSDN通过智能技术生成

学习内容:Linux小项目及解析


小项目:编写一段 shell 程序,实现文件的备份和恢复。

什么叫文件的备份和恢复:

数据备份就是把一个数据库里的东西,在某个时间数据库管理软件复制完全另外一个一样的。恢复是自从备份了数据库后,使用数据库的过程中发现出现了点小问题,导致数据库有些信息丢失了,并且现在的数据库中找不到这些信息了,这个时候就可以用备份的数据库来恢复下这些丢失的信息了。

代码语法基本解析:
  1. 一般情况下可以按Q键或者Ctrl+c;
  2. 第1步: ! 谈话一般在shell脚本中表示取反
  3. 第2步: [] 这个叫条件表达式 简易版的if
  4. -n 用于判断变量是否为空,注意只要有一个符号就不为空,空格也不行
  5. -d directory意思 用于判断目录是否存在
  6. 第3步:[ ! -n ] [ ! -d ] 的意思你应该懂了
  7. [ ! -n ] 判断变量如果不为空则条件成立
  8. [ ! -d ] 判断变量如果不是目录则条件成立
  9. -a 与;-o 或;! 非(一般出现在条件判断语句中)
  10. -ne 表示不等于
  11. if [ $? -ne 0 ]这是unix的shell编程语句,如果上一条命令执行后的结束代码不是0则执行下面的命令直到fi行之前
  12. exit 2 表示这个程序退出后,它的返回值是2。可以理解为这个程序死了,它的遗言是2,告诉别人自己是因为什么原因死掉的。这样法医(shell或它的父进程)就可以知道原因,来判断凶手(程序出错)是谁,从而作进一步的处理。
  13. tar 命令:文件压缩打包命令
    命令格式如下,
    打包:tar –czvf 包名 被打包的目录或文件名
    解包:tar -xzvf 包名

具体代码如下:

#!/bin/sh
# backup.sh
#备份目录函数
backupdir()
{ 
 dirtest
 echo "Backupping..."
 tar -zcvf /tmp/backup.tar.gz $DIRECTORY
}#恢复目录函数
restoredir()
{
 dirtest
 echo "Restroing..."
 tar -xzvf /tmp/backup.tar.gz 
}#验证目录函数
dirtest()
{
 echo "Please enter the directory name of backup file:"
 read DIRECTORY
 if [ ! -d $DIRECTORY ]
 then
 echo "Sorry,$DIRECTORY is not a directory!"
 exit 1
 fi 
 cd $DIRECTORY
}
clear
ANS=Y
while [ $ANS = Y -o $ANS = y ]
do
 echo "============================="
 echo "= Backup-Restore Menu       ="
 echo "+++++++++++++++++++++++++++++"
 echo "+ 1:Backup Directory        +"
 echo "+ 2:Restore Directory       +"
 echo "+ 3:Exit                    +"
 echo "+++++++++++++++++++++++++++++"
 echo "Please enter a choice(0-2):"
 read CHOICE
 case "$CHOICE" in
 1) backupdir;;
 2) restoredir;;
 0) exit 1;;
 *) echo "Invalid Choice!"
    exit 1;;
 esac
 if [ $? -ne 0 ]
 then
 echo "Program encounter error!"
 exit 2
 else 
 echo "Operate successfully!"
 fi
 echo "Would you like to continue? Y/y to continue,any other key 
to exit:"
 read ANS
 clear
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值