前言

最近又有学员删文件时候不小心删除了,导致删除错误删除了文件,之前也有过误删数据库,误删根的。

我也是在带出了这么多学员之后才发现,真的有人会误删,还没做讲师之前我以为这只是个梗。

解决误删除文件,我们有很多措施,等你删除了在去恢复,这种就属于第三流的运维了,第二流的运维有备份,第一流的运维不但有备份还有防止误删除的机制。

今天我们就来写一个脚本,先解决删除文件没有提示的问题,然后解决删除前备份的问题

脚本源码

[root@ecs-c13b test]# cat rm.sh
#!/bin/bash
NAME=$1
now=`date +%Y%m%d%H%M`
read -p "你确定要删除当前的文件或者文件夹吗 yes|no:" inpt
read -p "请在确定一次 是否删除文件或者文件夹 yes|no:" input
if [ $input == "yes" ] ||[ $input == "y" ];then
mkdir -p /data/.$now
#### 判断rsync是否已经安装
RSYNC=`rpm -qa rsync |wc -l`
if [ $RSYNC -ne 0 ];thenecho "现在开始备份数据"
else#### 如果没有rsync就先安装rsync并启动yum install xinetd rsync -yuseradd -s /sbin/nologin -M rsyncmkdir -p /datachown -R rsync.rsync /data/echo "rsync_backup:123456" >/etc/rsync.passwordchmod 600 /etc/rsync.passwordfi
rsync --daemon#### 判断要删除的文件是否存在
if [ -f $1 ] || [ -d $1 ];then### 如果要删除的文件存在则开始备份rsync -aR $1 /data/.$now/$1/ echo "数据备份成功"
elseecho "文件不存在,请重新确认文件名字"exit 1
fi
echo "开始删除数据"
/bin/rm  -rf $1 echo "文件删除成功,若需要恢复请到 /data/.$now/路径下恢复"
elif [ $input == "no" ] ||[ $input == "n" ]
thenexit 0
elseecho "请输入yes|no"exit
fi

总结

在学习中,可以把所有你能想到的都写成脚本来不断练习,任何技术的学习都是在不断模仿,不断写的过程中,变大变强的。

【shell案例】一个脚本让你从此再也不怕删错文件相关推荐

  1. Python3,为了考研,我用了9.9行代码,搞出一个GUI翻译器,从此再也不用百度翻译了。

    99行代码搞出GUI翻译器 1.引言 2.代码实战 2.1 思路 2.2 实战 3.总结 1.引言 小屌丝:鱼哥,你说百度翻译的准确,还是google翻译的准确? 小鱼:自己翻译的最准确. 小屌丝:你 ...

  2. [shell实例]——用脚本实现向多台服务器批量复制文件(nmap、scp)

    练习环境: (1)所有服务器将防火墙和selinux关闭 (2)所有服务器的root密码设置为aixocm (3)所有服务器都为10.0.100.*网段,并保证能够和其它主机通信 (4)所有服务器确保 ...

  3. 在linux上面找一个脚本,30个Linux Shell脚本经典案例

    在学习Linux运维时,普遍反馈是:Linux Shell是一个很难的知识板块.虽然大家都认真学,基本的语法也都掌握了,但有需求时,很难直接上手编程,要么写了很久,要么写不好! 也有很多做运维很多年的 ...

  4. 【shell案例】一个判断指定脚本是否有语法问题的脚本

    写一个脚本,判断一个指定的脚本是否有语法错误,如果用提醒用户按Q/q 无视错误,并退出其他任何键盘可以通过vim打开这个指定的脚本 [root@xinsz08 ~]# cat check.sh #!/ ...

  5. shell实例第19讲:一个脚本中调用另一个脚本的3种方法

    在Shell脚本中调用另一个脚本(3种方法) 准备:主脚本是second.sh,主脚本中调用first.sh 方法1:exec(1)执行方式:exec /home/weibo/shell_test/s ...

  6. linux shell 计算器 除0,用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....

    用shell写一个简易计算器,可以实现加.减.乘.除运算,假如脚本名字为1.sh,执行示例:./1.sh 1 + 2#!/bin/bash if [ $# -ne 3 ] then echo &quo ...

  7. shell 拷贝 一个目录下的所有文件 到 另个目录下_几例实用的Shell脚本

    日常工作中,经常编写一些shell命令或脚本以完成重复性操作,本文分享了最近用到的几例shell实用脚本. 1 特殊文件名的远程拷贝 服务器之间拷贝文件经常使用scp命令,其命令格式: (1)scp ...

  8. 【linux】Shell脚本中调用另外一个脚本的方法

    在Linux平台上开发,经常会在console(控制台)上执行另外一个脚本文件,经常用的方法有:./my.sh 或 source my.sh 或 . my.sh:这三种方法有什么不同呢?我们先来了解一 ...

  9. linux脚本计算器加减乘除,用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....

    用shell写一个简易计算器,可以实现加.减.乘.除运算,假如脚本名字为1.sh,执行示例:./1.sh 1 + 2#!/bin/bash if [ $# -ne 3 ] then echo &quo ...

最新文章

  1. ORB_SLAM2源码:ORBmatcher.cc
  2. MATLAB实战系列(六)-基于蚁群算法的三维路径规划算法思路浅析
  3. NeurIPS 2021 | 通过寻找平坦最小值,克服小样本增量学习中的灾难性遗忘
  4. 实现一个正则表达式引擎in Python(三)
  5. Java开发热门前沿知识!java开发技能培训机构
  6. iPhone 12售价再曝光,可能涨价50美元
  7. Oracle系统表大全(转)
  8. 四、矩阵的变换与分解
  9. 【代码质量】C/C++代码静态分析与常用分析软件工具
  10. 如何使用STVP_CmdLine.exe
  11. python初步学习笔记(上)
  12. 【Python】操作Excel之分类汇总
  13. 异次元发卡源码/荔枝发卡V3.0二次元风格发卡网全开源源码/对接免签约支付接口
  14. 四象限法推导lm曲线_SEM数据分析四象限方法
  15. 微星MS16j9鼠标面板可以移动指针,无法通过面板点击
  16. FCPX插件:视频去闪烁插件DEFlicker安装教程
  17. Mybatis 查询 List作为参数查询 条件中有多个参数,foreach in 查询
  18. 加快C++代码的编译速度方法
  19. 苹果在华一天收入可抵与唯冠6000万美元
  20. 使用 Tableau 连接到 Hortonworks Hadoop Hive

热门文章

  1. 大话互联网行业发展史
  2. java中怎么给方法加锁_Java中,我会用ArrayList,怎么还要会用CopyOnWriteArrayList
  3. 在爱与被爱的选择里,我选择了爱:伤感日志
  4. 2.2 获取图像感兴趣区域_DIC (数字图像相关法)
  5. Passbook Test
  6. qt5 textedit怎么改变鼠标响应_聊聊鼠标的前世今生
  7. U8 cloud V3.0全产品注册报价授权计算器
  8. Let‘s Encrypt 泛域名通用证书申请
  9. 无网络环境重装系统 驱动问题怎么办?
  10. java中null与_java中NULL与 的区别