自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

手把手教你利用命令行工具創(chuàng)建LinuxMac系統(tǒng)下的網(wǎng)站備份

安全 應(yīng)用安全
創(chuàng)建網(wǎng)站備份應(yīng)該是一個(gè)網(wǎng)站管理員最為重要的日常工作之一。但現(xiàn)實(shí)情況是,備份這一步往往被很多人忽略,也就是說(shuō)仍然有很多網(wǎng)管的網(wǎng)站安全意識(shí)較低。

手把手教你利用命令行工具創(chuàng)建LinuxMac系統(tǒng)下的網(wǎng)站備份

創(chuàng)建網(wǎng)站備份應(yīng)該是一個(gè)網(wǎng)站管理員最為重要的日常工作之一。但現(xiàn)實(shí)情況是,備份這一步往往被很多人忽略,也就是說(shuō)仍然有很多網(wǎng)管的網(wǎng)站安全意識(shí)較低。

所有的Linux/Mac用戶(hù)都能夠零經(jīng)濟(jì)成本地通過(guò)命令行工具創(chuàng)建網(wǎng)站備份。如果你用的不是Linux/Mac,請(qǐng)關(guān)注我們的后續(xù)文章——如何在windows上通過(guò)軟件方式創(chuàng)建備份。

本文的初衷不是為讀者提供完整的備份解決方案,而是給那些有時(shí)間并且想要學(xué)習(xí)一些基礎(chǔ)的命令行工具進(jìn)行網(wǎng)站備份的寶寶們一點(diǎn)參考。

必要條件

你的主機(jī)必須具備必要的軟件及證書(shū)。

(1) 服務(wù)器上的軟件:

  • tar

(2) 電腦上的軟件:

  • SSH(用于創(chuàng)建/刪除備份文件)
  • SCP(用于下載備份文件)
  • Terminal(例如gnome-terminal,用于運(yùn)行所有命令)

(3) 所需信息

  • 服務(wù)器IP及SSH證書(shū)
  • 數(shù)據(jù)庫(kù)證書(shū)
  • 網(wǎng)站根目錄(以及你想在備份中加入或排除內(nèi)容的目錄)
  • 數(shù)據(jù)庫(kù):MySQL、PostgreSQL或SQLite(如果你的網(wǎng)站使用其中一種)

備份創(chuàng)建的具體步驟

一旦將你的電腦與服務(wù)器相連接,你就可以快速地通過(guò)命令進(jìn)行網(wǎng)站備份。

(1) 通過(guò)SSH連接服務(wù)器:

SSH是Secure Shell的簡(jiǎn)寫(xiě),通常用于遠(yuǎn)程命令的執(zhí)行。

 

2.gif

 

打開(kāi)terminal,鍵入以下命令,通過(guò)SSH協(xié)議連入你的服務(wù)器:

  1. ssh username@serversIP 

在terminal中連上服務(wù)器后,你鍵入的每一條命令都在你的服務(wù)器上執(zhí)行。接下來(lái),我們要在服務(wù)器上創(chuàng)建一個(gè)名為“backup(備份)”的新文件夾。只要不是公開(kāi)的,你可以把這個(gè)文件夾放在任何地方。

如果你的web應(yīng)用根目錄為:/home/username/html,那么我們就能夠順利在 /home/username/中創(chuàng)建“backup(備份)”的文件夾。一旦備份傳輸?shù)搅穗娔X,就可以刪除服務(wù)器上的備份記錄。

如果你不知道自己的網(wǎng)站根目錄,可以在cPanel賬戶(hù)中找到該信息:

3.png

上圖中我們可以看到該網(wǎng)站的根目錄是:/home/ma658tvk。

在Linux/Mac操作系統(tǒng)中,你可以使用mkdir命令創(chuàng)建目錄。例如:

  1. mkdir -p /home/username/backup/{db,core,logs,conf} 

該命令能夠幫你在/home/username/中創(chuàng)建“backup”目錄。

在該文件夾中,我們已經(jīng)創(chuàng)建了4個(gè)子目錄:db、core、logs以及conf。

注意mkdir命令中的-p符號(hào),該符號(hào)表示:在某目錄已經(jīng)存在但仍然按需創(chuàng)建主目錄的情況下不會(huì)報(bào)錯(cuò)。

將整個(gè)應(yīng)用進(jìn)行備份的工作非常關(guān)鍵,包括數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)文件、核心文件、插件以及媒體文件。如果你想更加細(xì)節(jié)化一些,還可以對(duì)服務(wù)器配置文件及日志進(jìn)行備份。在執(zhí)行取證分析時(shí),備份數(shù)據(jù)就更是尤為重要了。

導(dǎo)出數(shù)據(jù)庫(kù)

我之所以熱衷于使用命令行工具是因?yàn)樵谶M(jìn)行數(shù)據(jù)庫(kù)備份時(shí)都無(wú)需再用到其它附加工具。大多數(shù)的數(shù)據(jù)庫(kù)引擎都具備命令行功能,只需要拿到數(shù)據(jù)庫(kù)證書(shū),整個(gè)過(guò)程簡(jiǎn)單粗暴高效。

 

4.gif

 

下面的命令將導(dǎo)出一個(gè)數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)文件并將其放在:/home/username/backup/db/

如果你的網(wǎng)站采用的是MySQL,可運(yùn)行以下命令:

  1. mysqldump -u [database_user] -p [database_name] > [/home/username/backup/db/yourdomain.sql] 

若為PostgreSQL,則運(yùn)行這個(gè)命令:

  1. pg_dump -U [database_user] [database_name] > [/home/username/backup/db/yourdomain.sql] 

這些命令會(huì)用到用戶(hù)名密碼。輸入后(你的terminal中看不到這些字符)轉(zhuǎn)儲(chǔ)文件將存儲(chǔ)在事先準(zhǔn)備好的backup文件夾中。

如果網(wǎng)站用的是SQLite,那么你只需要復(fù)制該文件即可:

  1. cp [/path/to/your/SQLite.db] [/home/username/backup/db/] 

創(chuàng)建網(wǎng)站文件的Tar文件

現(xiàn)在我們要做的是壓縮網(wǎng)站核心文件(為了方便起見(jiàn))。在你的服務(wù)器上安裝tar程序,并確定核心文件以及其它你想備份或不備份文件的具體位置。

我們?cè)俅渭僭O(shè)你的網(wǎng)站存儲(chǔ)在:/home/username/html。那么使用以下命令創(chuàng)建tar文件:

  1. tar -cf /home/username/backup/core/core.tar /home/username/html 

如果你想涵蓋/home/username/html中的所有文件,那么上面這個(gè)命令就非常好用。但如果你不想包含全部呢?

假設(shè)你的網(wǎng)站架構(gòu)如下:

  1. html 
  2. ├── cache 
  3. ├── core 
  4. └── www 
  5.     ├── index.php 
  6.     └── media 

如果我們壓縮了整個(gè)目錄,那么緩存(cache)文件夾也會(huì)被備份。而緩存文件完全沒(méi)有必要備份,如果刪除這部分內(nèi)容,可以節(jié)省很多時(shí)間、節(jié)約帶寬。但如果使用tar命令,我們可以通過(guò)-exclude這一標(biāo)識(shí)將不需要備份的目錄排除。下面我們?cè)谂懦彺婺夸浀那闆r下對(duì)網(wǎng)站目錄進(jìn)行再次壓縮:

  1. tar --exclude='/home/username/html/cache' -cf /home/username/backup/core/core.tar /home/username/html 

另外,名為core.tar的voilà – a .tar文件會(huì)存儲(chǔ)在/home/username/backup/core/中。你也可以一直使用-exclude命令對(duì)你不需要備份的內(nèi)容進(jìn)行排除。

可選:對(duì)配置或日志文件進(jìn)行備份

就個(gè)人經(jīng)驗(yàn)來(lái)說(shuō),我已經(jīng)多次受益于配置和日志文件的備份了。比如,我已經(jīng)很多次忘記我的“httpd.conf”長(zhǎng)啥樣了,所以每次我都通過(guò)查電腦上的備份來(lái)解決這個(gè)難題。我是一個(gè)很懶的人,但請(qǐng)諒解——這個(gè)習(xí)慣常常能幫上大忙,日志文件也是。

配置文件和日志文件沒(méi)有通用位置,但你可以在tar命令中添加多個(gè)位置。例如:

  1. tar -cf /home/username/backup/conf/conf.tar \ 
  2. /full/path/to/first_location \ 
  3. /full/path/to/second_location \ 
  4. /full/path/to/third_location 

第一行末尾的“\”符號(hào)表示按“Enter”鍵時(shí),terminal不執(zhí)行命令,而表示該命令含多行的意思。最后一行命令末尾不含“\”字符,表示terminal可以執(zhí)行命令。這樣,你就可以創(chuàng)建一個(gè)包含你系統(tǒng)不同文件夾中的配置/日志文件的.tar文件了。

只要你在備份的服務(wù)器中安裝了正確的軟件,恢復(fù)配置文件只會(huì)讓你對(duì)配置文件進(jìn)行復(fù)制。如果要在生產(chǎn)服務(wù)器中恢復(fù)配置文件,但軟件不同,恢復(fù)過(guò)程可能會(huì)發(fā)生很多錯(cuò)誤。務(wù)必小心。

最終備份

5.gif

(1) 創(chuàng)建最終的tar文件

到這里,我們已經(jīng)把/home/username/backup/文件夾下所需的文件都準(zhǔn)備好了,現(xiàn)在我們只需要?jiǎng)?chuàng)建.tar文件并把它下載到我們自己的電腦上即可。雖然我們也可以在不壓縮的情況下下載整個(gè)備份文件夾,但是我還是建議以單個(gè)壓縮文件的方式下載(更加保險(xiǎn)、安全)。

  1. tar -cf /home/username/latest.backup.tar /home/username/backup/ 

該命令將創(chuàng)建一個(gè)名為“latest.backup.tar”的文件,包含所有的備份文件。在terminal中輸入“exit”就能斷開(kāi)個(gè)人電腦與服務(wù)器的連接。

(2) 通過(guò)SCP下載文件

我們需要通過(guò)scp命令來(lái)下載latest.backup.tar這個(gè)文件:

  1. scp username@serversIP:/home/username/latest.backup.tar /home/username/backups/domainname/backup_$(date +%Y%m%d_%H%M%S).tar 

該命令的作用就是從服務(wù)器上抓取該.tar文件,并將它下載到你電腦上“ /home/username/backups/domainname/”的文件夾,然后根據(jù)標(biāo)準(zhǔn)日期命令對(duì)該文件夾進(jìn)行重命名(如backup_20170730_142422)。

(3) 從服務(wù)器中刪除備份

現(xiàn)在網(wǎng)站備份已經(jīng)安全地躺在你的電腦里了,我們也就可以放心地刪除服務(wù)器上的備份記錄了。

首先,通過(guò)SSH重新登錄服務(wù)器,運(yùn)行以下命令:

  1. rm /home/username/latest.backup.tar 
  2. rm -rfi /home/username/backup/ 

上面第一個(gè)命令的作用是刪除服務(wù)器上最后的tar文件,第二個(gè)命令用于幫助你從服務(wù)器遞歸地刪除備份文件夾。

警告!務(wù)必確保文件和文件夾路徑的準(zhǔn)確性,因?yàn)橐牖謴?fù)通過(guò)命令行刪除的東西非常困難,而且恢復(fù)難度也會(huì)隨著時(shí)間的增加而增加。一旦某文件被刪除,該文件的所有鏈接均被破壞,操作系統(tǒng)也會(huì)隨時(shí)釋放該文件所使用的的區(qū)塊。再次聲明:務(wù)必確認(rèn)使用的路徑是正確的。

一旦你刪除了備份文件,就可以通過(guò)輸入exit退出服務(wù)器。

結(jié)論

整個(gè)網(wǎng)站備份過(guò)程完美完成!這不是一個(gè)完整的解決方案,但我想這是學(xué)習(xí)信息安全領(lǐng)域中備份技術(shù)的一個(gè)良好開(kāi)端。

責(zé)任編輯:趙寧寧 來(lái)源: FreeBuf
相關(guān)推薦

2017-09-01 15:00:49

LinuxMac網(wǎng)站備份

2021-10-21 10:25:32

Windows7操作系統(tǒng)微軟

2022-01-04 08:52:14

博客網(wǎng)站Linux 系統(tǒng)開(kāi)源

2022-01-08 20:04:20

攔截系統(tǒng)調(diào)用

2021-12-28 08:38:26

Linux 中斷喚醒系統(tǒng)Linux 系統(tǒng)

2022-01-17 07:50:37

Linux Patch項(xiàng)目

2009-06-15 16:58:57

Java安裝Linux

2021-07-14 09:00:00

JavaFX開(kāi)發(fā)應(yīng)用

2010-07-06 09:43:57

搭建私有云

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印機(jī)

2021-12-15 08:49:21

gpio 子系統(tǒng)pinctrl 子系統(tǒng)API

2020-12-21 09:47:16

UbuntuMinicondalinux

2009-12-02 18:34:29

Linux關(guān)閉防火墻命

2021-09-26 16:08:23

CC++clang_forma

2023-04-26 12:46:43

DockerSpringKubernetes

2022-12-07 08:42:35

2022-07-27 08:16:22

搜索引擎Lucene

2022-03-14 14:47:21

HarmonyOS操作系統(tǒng)鴻蒙

2011-02-22 13:46:27

微軟SQL.NET
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)