Fsck Expect脚本

时间:2018-07-04 21:05:54

标签: loops scripting expect mount fsck

因此,正如标题所示,我正在尝试创建一个期望脚本,该脚本将在损坏的驱动器上运行 fsck 。目的是修复驱动器,以便我可以挂载驱动器并从中恢复数据。

手动运行命令时,我得到:

  

超级块或分区表很可能已损坏!   中止吗?

如果我声明 “否” ,它将开始检查,并且我收到:

  

/ dev / footage / TrickCeratops包含错误的文件系统,请强制检查。   通道1:检查inode,块和大小   从扫描获取下一个索引节点时,错误读取块1221066784(无效参数)。忽略错误y?

然后我可以说 “是” 前进,它将再次提示我:

  

强制重写y吗?

这是我遇到的问题...我可以自动执行前两个答案,但是无法获得期望的脚本来回答 “是” < / strong>上的 “是否要重写?” 。如果可以,请回答第二和第三个问题,那么我需要循环遍历直到完成。 >

到目前为止,我的脚本看起来像这样:

    #!/bin/bash

    expect -c'

       set timeout -1

       set temp password

       spawn ./e2fsckscript.sh

       expect "password for user:"

       send "$temp\r"

       expect "Abort<y>?"

       send "no\r"

       expect {

               "Ignore error<y>?"{
                    send "yes\r"
               }

               "Force rewrite<y>?"{
                    send "yes\r"
               }
               exp_continue
       }
    '

“ spawn ./e2fsckscript.sh” 只需运行命令:

  

sudo e2fsck -b 32768 / dev / footage / TrickCeratops

0 个答案:

没有答案