記一次危險的操作——誤刪/usr/bin目錄

地球沒有花發表於2018-08-20

做事要專一,否則就會出問題。

誤刪了/usr/bin/目錄,我能想到的同步命令都不能用,wget、nc、rsync(後來運維說是可以在server端強行推,這個倒是沒試過,當然你肯定得先配置client端的rsync配置檔案,讓其可以接收來自server端的推),好在我的伺服器上都有go,我的解決辦法是用go語言寫了一套cs,具體如下:

1、在同樣配置的伺服器上打包一份/usr/bin/為bin.tar.gz,並開啟server端服務,server程式碼如下:

package main

import "net/http"

func main(){
        http.ListenAndServe(":8080", http.FileServer(http.Dir("/usr/bin")))
}

其中在/usr/bin/目錄下打包了一個bin.tar.gz,到時候可以通過 ip:8080/bin.tar.gz 來下載。

2、在client上用僅存的編輯工具nano寫一個client.go:

package main

import (
        "fmt"
        "io"
        "net/http"
        "os"
)

var (
        url = "http://10.122.148.128:8080/bin.tar.gz"
)

func main() {
        res, err := http.Get(url)
        if err != nil {
                fmt.Println(err)
        }
        f, err := os.Create("bin.tar.gz")
        if err != nil {
                fmt.Println(err)
        }
        io.Copy(f, res.Body)
}

3、先 go run server.go,然後 go run client.go(可以先cd /usr/bin/),用tar命令解壓(還好tar可用)即可。

經過這次發現了命令的分級設計,這時候能用的命令基本是系統級別不可或缺的命令。設計的真好。

相關文章