linux系统需要备份吗,准备好了吗?请备份你的Linux系统

一、我们需要备份什么?

我的 Linux 系统是基于 Redhat 的Redhat Linux 9.0,同时配置了诸如 MySQL、PHP、Apache 等基础服务,同时又配有 Awstats、MRTG、MT 等应用服务程序,因此,我们需要备份的除了系统本身的重要文件以外,还需要备份数据库、log文件和统计数据文件等。当然另外一项必不可少的就是编译各项服务时的 ./configure 参数,这里就不赘述了。

二、制定备份文件列表。

这个步骤就是归纳一下需要备份的目录列表。以下我就依照我所安装的各项服务作了一个简单的list。 一些文件的地址是以我的服务器为标准(以"/"开头),一些则以相对目录来描述(以"./"开头)。

系统:

/etc /usr/local/etc

包含所有核心配置文件。这其中包括网络配置、系统名称、防火墙规则、用户、组,以及其他全局系统项。

/var

包含系统守护进程(服务)所使用的信息,包括 DNS 配置、DHCP 租期、邮件缓冲文件、HTTP 服务器文件、db2 实例配置,等等。

/home

包含所有用户的默认用户主目录。这包括他们的个人设置、已下载的文件和用户不希望失去的其他信息。

/root

是根(root)用户的主目录。

/opt

是安装许多非系统文件的地方。IBM 软件就安装在这里。OpenOffice、JDK 和其他软件在默认情况下也安装在这里。

系统中不需要备份的目录:

/proc

应该永远不要备份这个目录。它不是一个真实的文件系统,而是运行内核和环境的虚拟化视图。它包括诸如 /proc/kcore 这样的文件,这个文件是整个运行内存的虚拟视图。备份这些文件只是在浪费资源。

/dev

包含硬件设备的文件表示。如果计划还原到一个空白的系统,那就可以备份 /dev。然而,如果计划还原到一个已安装的 Linux 系统,那么备份 /dev 是没有必要的。

更多关于目录的解释,请查看 Filesystem Hierarchy Standard 和 Red Hat Linux Overview of File System Hierarchy Standard (FHS)

MySQL:

/usr/local/mysql

同时要注意版本的保留,在恢复的时候使用相同的版本(或者相同系列的版本)会减少更多不必要的麻烦,例如 “/usr

/local/mysql-standard-4.1.7-pc-linux-i686”。

/etc/my.cnf

MySQL 的配置文件。

Apache:

/usr/local/apache2/logs

Apache 的 log 文件。这里建议使用 cronolog 来 rotate Apache 的巨大 log。可以参考我的 cronolog 杂记

/usr/local/apache2/conf

Apache 的配置文件,例如: httpd.conf。还是建议在修改此文本的时候使用“#”号 comment 修改的内容,然后添加需要修改的内容。

PHP:

/usr/local/lib/php.ini

个人觉得这个就够了。如果你设定了 php 的 error log 文件,当然那个也是需要的。

Movable Type:

./MT-3.0D-full-en_ususr/ 和你的 weblog 目录

一般来说 blog 不会太大,不介意的话就整个备份一下。当然最重要的是 ./MT-3.0D-full-en_ususr/db/ 文件夹,里面有所有的数据(如果你没有用 MySQL 作为 MT 的数据存储格式的话)。

Awstats:

/etc/awstats/

Awstats 的配置文件。诸如:awstats.blog.conf

/var/lib/awstats/

Awstats 的分析留档文件。 诸如:awstats082004.blog.txt

MRTG:

MRTG 的输出文件夹。内有图片和诸如 12.34.56.78_12.34.56.78.log 的log文件。

三、使用 tar 和 crontab 等简单工具备份。

以下是使用 tar 的脚本,去掉了多余的说明部分。 您也可以点击这里下载并修改以适合自己的系统。在脚本中我尽量用更多的方法来进行备份。在实际应用中可以将步骤更加简化。更多关于 tar 的参数请看 man tar#!/bin/sh

# Date format: 20040626

DATE=`date -d yesterday +%Y%m%d`

# MySQL version & directory

MYSQL_VERSION="4.x.x"

MYSQL_DIR="/usr/local/mysql/data"

# MT Blog directory

MTBLOG_DIR="/path-to-mt/db/"

# Backup directory & Backup Filelist

BACKUP_DIR="/path-to-backup/backupfile"

BACKUP_FILELIST="/path-to-backup/filelist"

# Backup MySQL

printf "Backup MySQL data directory, please wait...\n"

tar -zpcvPf $BACKUP_DIR/mysql-standard-$MYSQL_VERSION-data-$DATE.tgz $MYSQL_DIR | grep "tar:"

printf "Done! The new backup file is: $BACKUP_DIR/mysql-standard-$MYSQL_VERSION-data-$DATE.tgz\n\n"

# Backup MT Blog

printf "Backuping the MT3.0 Weblog data directory, please wait...\n"

tar -zpcvPf $BACKUP_DIR/MT-db-$DATE.tgz $MTBLOG_DIR | grep "tar:"

printf "Done! The new backup file is: $BACKUP_DIR/MT-db-$DATE.tgz\n"这里引用了『Linux 备份与恢复速成指南』中的一个小技巧,将文件列表写入一个文件进行操作。查看我的Filelist。

以下是一个文件列表的例子:/etc

/var

/home

/usr/local

/opt (有时会是空目录)以下解释引自『Linux 备份与恢复速成指南』:

请注意 tar -T(或 files-from)命令不能接受通配符。文件必须明确地列出。上面的例子展示了一种单独地引用文件的方法。您还可以执行脚本来搜索系统,然后建立一个列表。下面就是这样一个脚本的例子:#!/bin/sh

cat MyFiles > TempList

find /usr/share -iname *.png >> TempList

find /tmp -iname *.iso >> TempList

tar -cpzMf /path-to-backup/backupfile -T TempList上面的脚本首先将 MyFiles 中的所有现有文件列表复制到 TempList。然后它执行两个 find 命令来搜索文件系统中匹配某个模式的文件,并将它们附加到 TempList。第一次是搜索 /usr/share 目录树中以 .png 结尾的所有文件。第二次是搜索 /tmp 目录树中以 .iso 结尾的所有文件。在建立好列表之后,tar 然后在文件设备 /dev/st0 (第一个 SCSI 磁带设备)上创建 一个新的归档文件,该文件使用 gzip 格式来压缩,并保留所有文件权限。该归档文件将跨越多个卷。要归档的文件的名称将从 TempList 文件中提取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java解析excel文件_1.3.1 python解析excel格式文件

Excel表格Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。excel文档的基本定义工作薄(workbook)工作表(sheet)活动表(active sheet)行(row): 1,2,3,4,5,6……..列(column): A,B,C,D……..单元格(cell): B1, C1excel文件格式P…

python继承如何进行引用传递的区别_python在什么情况下会引用传递呢?

我写了一个对单链表进行排序的程序,核心部分如下:class Solution:def insertionSortList(self, head):ans Nonecur headwhile cur is not None:if ans is None or ans.val > cur.val:tmp ListNode(cur.val)tmp.next ansans tmpcur cur.nextcont…

linux通过不同端口访问,linux下两个tomcat通过不同端口访问不同项目

首先安装JDKchmod 777 jdk-7u51-linux-x64.rpmrpm -ivh jdk-7u51-linux-x64.rpm添加环境变量vim /etc/profile 行尾添加下面内容#Java Environment variableJAVA_HOME/usr/java/jdk1.7.0_51PATH$JAVA_HOME/bin:$PATH:$HOME/binCATALINA_HOME/usr/local/tomcatexport LD_LIBRARY…

算法python知乎_20个算法李小文知乎文章与Github代码汇总

李小文知乎文章与Github代码汇总共建立了2个Github项目,实现了20个算法,写了12篇知乎文章。---------------------------------------------------------------------------------------【Github项目】机器学习https://github.com/tushushu/imylu​githu…

linux 脚本 语法错误,从windows拷贝到linux的脚本报错:未找到命令 or 语法错误

关于discuz“终于解决“头像保存过程中发生网络错误,请重试"”的解决方法1 php.ini里面allow_url_fopen On2 将php.ini中的;upload_tmp_dir 该行的注释符,即前面的分号“:”去掉,使该行在php.i…

c++ 快速排序_常用排序算法之快速排序

前天给大家分享了归并排序,但是它不是原地排序算法,需要消耗额外的内存空间,今天给大家分享的是江湖无人不知无人不晓的"快排"--快速排序。快排是小生接触开发学会的第一个排序算法快速排序原理快排也用到了分治思想。快排的核心思…

西门子安装未找到ssf文件_V5.3安装时显示NO SSF FILE FOUND对话框,我该怎么解决啊? 谢谢!-工业支持中心-西门子中国...

我安装过多次step7 v5.3,中文英文版都安装过。从没有遇到这样的问题。是不是你的安装光盘有问题?换一张光盘试验一下!回答者: profinet - 中级工程师&nbsp&nbsp第10级2006-10-20 01:18:19这个问题比较简单,建议你在驱动器…

k8s ubuntu cni_手把手教你使用RKE快速部署K8S集群并部署Rancher HA

作者:杨紫熹原文链接:https://fs.tn/post/PmaL-uIiQ/RKE全称为Rancher Kubernetes Engine,是一款经过CNCF认证的开源Kubernetes发行版,可以在Docker容器内部运行。它解决了Kubernetes社区中最常见的问题——安装十分复杂。借助RKE…

linux du -sh 脚本,Linux之shell脚本(2)

Linux之shell脚本(2)一、printf命令:printf是一个把从标准输入的字符按照你所要求的格式输出到标准输出即屏幕的命令.在很多时候,我们可能需要将自己的数据给他格式化输出的。1.格式化输出。(print format)2.命令格式:printf打印格式实际内容…

import oracle utility_教你如何Oracle数据导入

学习Oracle时,你可能会遇到Oracle数据导入问题,这里将介绍Oracle数据导入问题的解决方法,在这里拿出来和大家分享一下。Oracle数据导入实用程序(Import utility)允许从数据库提取数据,并且将数据写入操作系统文件。imp使用的基本格…

linux 管道非阻塞,linux – 管道上的非阻塞读取

可以在管道上进行非阻塞I / O吗? fcntl无法设置O_NONBLOCK. Linux编程接口的页面918包括一个表’从管道读取n个字节或FIFO(p)’的语义.此表列出了管道和FIFO的行为,其中一列标题为O_NONBLOCK已启用?这意味着您可以在管道上设置O_NONBLOCK标志.它是否正确…

python异常值删除_python数据清洗中,是如何识别和处理异常值的?

异常值处理是pythonshujuqingxi/ stylecolor:#000;font-size:14px;>python数据清洗中重要的步骤,虽然异常值出现频率比较低,但是如果置之不理的话,还是会对实际项目的分析造成偏差,所以今天小编就跟大家分享pythonshujuqingxi/…

react 子传参父_react子父传参有几种方法?

react子父传参有几种方法?下面本篇文章给大家介绍一下react父子组件传参(值)的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。react父子组件传参(值)的几种方法一、父组件传给子组件父组件通过props传递给子组件&…

啊哈c语言答案1.3,啊哈C语言编程-第2课-让计算机开口说话

为什么会有计算机的出现呢?我们伟大的人类,发明的每一样东西都是为了帮助我们改善生活。计算机同样是用来帮助我们的工具。想一想,假如你现在希望让计算机帮助你做一件事情,你首先需要做什么?是不是要先与计算机进行沟…

python c java_简单明了看懂JAVA,Python和C+的优劣势

Java由于其优越的跨平台可移植性,在Web开发中是主流语言。在加上手机Android系统的发展,使得java开发人员的需求量很大。同时,Java现在也用来开发手游。Java 的语法相对规范。 Python是动态形的灵活的解释性语言,从软件开发到Web开…

c语言源程序文件.c如何保存,急求如何将下列C语言程序数据存储到文件中?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼求如何改动才能将下列程序的存储输入或输出数据(或两者一起)到指定的文件(或运行时直接创立一个文件)如Arrangement中。#include int n0;int rest[7][7]; //全局声明,以供全局调用int main(){void perm(int list[],int ,int );int …

ultraos win10启动盘_UltraISO制作U盘启动安装MSDN原版Win10系统教程 - SDN系统库

UltraISO制作U盘启动安装Win10系统本教程是介绍使用UltraISO(软碟通)制作U盘启动来安装Win10系统,适用于当原系统损坏、崩溃、升级异常导致系统不能开机时重装,相对比《制作U盘PE启动盘方法》更快,且不需要借助任何第三PE/还原工具&#xff0…

python3.6字典有序_为什么Python 3.6以后字典有序并且效率更高?

在Python 3.5(含)以前,字典是不能保证顺序的,键值对A先插入字典,键值对B后插入字典,但是当你打印字典的Keys列表时,你会发现B可能在A的前面。 但是从Python 3.6开始,字典是变成有顺序…

linux 依赖关系解析失败,关于linux依赖关系出错的解决

我在装caffe时遇到的错误如下:apt-get: 代码:sudo apt-get install libgl1-mesa-dev正在读取软件包列表... 完成正在分析软件包的依赖关系树正在读取状态信息... 完成有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是因为系统无法达到您要…

以前是传xml的吗_明明不太合适但是还是被用在配置文件和数据传输上的XML

XML概述:概念:可扩展的标记语言。功能:作为数据本地存储的格式。(已淘汰)作为结构化存储的方式,不如数据库效率高。目前一部分移动设备中还在使用。作为网络中传输数据的格式。(已淘汰)作为网络传输的格式,在目前以移动…