zoukankan      html  css  js  c++  java
  • Use Tar Backup Linux System

    1. Backup System
    2. Use Tar Backup Linux System
    	2.1 本次备份在LiveCD环境下进行(20200911)
    		2.1.1 系统环境状态概述
    		2.1.2 tar -cpzvf /media/Sv/bk2020-09.tgz ./
    		2.1.3 tar -xpzvf bk2020-09.tgz -C /mnt/sda6
    	2.2 本次备份在arch系统环境下进行(20200912)
    		2.2.1 系统环境状态概述
    		2.2.2 tar cpzf /mnt/Sv/bk0912.tgz --exclude=/dev --exclude=/home --exclude=/lost+found --exclude=/mnt --exclude=/proc --exclude=/run --exclude=/sys --exclude=/tmp /
    		2.2.3 tar xpzf bk0912.tgz -C /
    	2.3 本次备份在LiveCD环境下进行(20200913)
    		2.3.1 系统环境状态概述
    		2.3.2 tar -cpzvf /media/Sv/bk0913x-pkg.tgz --exclude=./var/cache/pacman/pkg/* ./
    		2.3.3 小结
    3. pkglist

    1. Backup System

    几十年来,Window系统备份一直使用ghost。我不知道有没有其他替代品,但也没想过去找,因为这个ghost就足够好用了。
    ghost不支持linux的常见文件系统。Linux系统的备份五花八门有很多种方式。比如使用dd完整备份系统
    # dd if=/dev/sda6 | gzip > s6arch2020-08.img.gz
    # gzip -dc s6arch2020-08.img.gz | dd of=/dev/sd??...
    但存在如下问题。

    • 速度慢,单纯的dd命令若使用bs=1M设定块大小,可以显著提高速度,但若使用gzip压缩,指定多大的块都没用。
    • 若不使用gzip等压缩,就需要原始磁盘大小的空间存放备份文件。
    • 只能还原到原始大小的盘。

    Linux系统,一切皆文件,既然是文件,要备份,只需要复制即可。本文记录使用tar备份系统的过程。

    2. Use Tar Backup Linux System

    2.1 本次备份在LiveCD环境下进行(20200911)

    2.1.1 系统环境状态概述

    已安装桌面及基本工具chromium (SwitchyOmega) firefox qbittorrent vlc libreoffice ibus等,但xfce4还未清理,安装了全部。详见: Qqlist2020-08v09.xls

    $ sudo pacman -Q |wc -l
    591
    $ sudo pacman -Qe |wc -l
    113
    $ neofetch
                       -`                    tom@tompc 
                      .o+`                   --------- 
                     `ooo/                   OS: Arch Linux x86_64 
                    `+oooo:                  Host: F.20 
                   `+oooooo:                 Kernel: 5.8.7-arch1-1 
                   -+oooooo+:                Uptime: 42 mins 
                 `/:-:++oooo+:               Packages: 591 (pacman) 
                `/++++/+++++++:              Shell: bash 5.0.18 
               `/++++++++++++++:             Resolution: 1280x800 
              `/+++ooooooooooooo/`           DE: Xfce 4.14 
             ./ooosssso++osssssso+`          WM: Xfwm4 
            .oossssso-````/ossssss+`         WM Theme: Default 
           -osssssso.      :ssssssso.        Theme: Adwaita [GTK2/3] 
          :osssssss/        osssso+++.       Icons: Adwaita [GTK2/3] 
         /ossssssss/        +ssssooo/-       Terminal: xfce4-terminal 
       `/ossssso+/:-        -:/+osssso+-     Terminal Font: Monospace 12 
      `+sso+:-`                 `.-/+oso:    CPU: Intel Core 2 Duo T8300 (2) @ 2.40 
     `++:.                           `-/+/   GPU: Intel Mobile GM965/GL960 
     .`                                 `/   Memory: 1060MiB / 7950MiB 
     # df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sdb6        30G  5.4G   24G  19% /media/mint/Sarch
    

    2.1.2 tar -cpzvf /media/Sv/bk2020-09.tgz ./

    # cd /media/Sarch
    # tar -cpzvf /media/Sv/bk2020-09.tgz ./
    $ du -sh bk2020-09.tgz
    2.6G bk2020-09.tgz

    # md5sum s6arch2020-09.tgz
    7111af74b95718d1326dde7bebbfd8be  s6arch2020-09.tgz
    # shasum s6arch2020-09.tgz
    58656fd0daa2c62978d8f3674c9d70b68a533ba5  s6arch2020-09.tgz

    2.1.3 tar -xpzvf bk2020-09.tgz -C /mnt/sda6

    # tar -xpzvf bk2020-09.tgz -C /mnt/sda6
    (记得检查fstab, grub文件)

    2.2 本次备份在arch系统环境下进行(20200912)

    2.2.1 系统环境状态概述

    在0911基础上,清理了xfce4不必要的桌面项目,
    $ sudo pacman -Rsun parole xfburn xfce4-screenshooter orage iwd xfce4-cpufreq-plugin xfce4-mailwatch-plugin xfce4-notes-plugin xfce4-wavelan-plugin xfce4-weather-plugin
     增加了vbox,gimp,等软件包...
    $ sudo pacman -S usbutils smartmontools lostfiles dos2unix convmv fzf virtualbox (virtualbox-host-modules-arch) aria2 elinks links privoxy shadow..... hexchat gimp whois ltrace strace traceroute lsof
     配置了桌面sensors等,但clamav还未更新启用...
    $ uname -r
    5.8.8-arch1-1

    2.2.2 tar cpzf /mnt/Sv/bk0912.tgz --exclude=/dev --exclude=/home --exclude=/lost+found --exclude=/mnt --exclude=/proc --exclude=/run --exclude=/sys --exclude=/tmp /

    $ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda6        30G  8.7G   20G  31% /
    
    $ sudo tar cpzf /mnt/Sv/bk0912.tgz --exclude=/dev --exclude=/home --exclude=/lost+found --exclude=/mnt --exclude=/proc --exclude=/run --exclude=/sys --exclude=/tmp /
    tar: Removing leading `/' from member names
    tar: Removing leading `/' from hard link targets
    tar: /etc/pacman.d/gnupg/S.gpg-agent.extra: socket ignored
    tar: /etc/pacman.d/gnupg/S.gpg-agent.browser: socket ignored
    tar: /etc/pacman.d/gnupg/S.gpg-agent.ssh: socket ignored
    tar: /etc/pacman.d/gnupg/S.gpg-agent: socket ignored
    tar: /: file changed as we read it
    
    $ du -sh bk0912.tgz 
    2.8G	bk0912.tgz
    
    $ md5sum bk0912.tgz 
    081cad8b846334042651fa5708c092f2  bk0912.tgz
    $ shasum bk0912.tgz 
    9fc5a682a0f87d7ab9f9b9810489e62f2ae68ed2  bk0912.tgz
    

    2.2.3 tar xpzf bk0912.tgz -C /

    $ sudo tar xpzf bk0912.tgz -C /
    $ mkdir dev home lost+found mnt proc run sys tmp
    (记得检查fstab, grub文件)

    2.3 本次备份在LiveCD环境下进行(20200913)

    2.3.1 系统环境状态概述

    在0912基础上,更新clamav; pacman -S gedit;
    $ sudo freshclam
    $ sudo systemctl enable clamav-freshclam.service
    $ sudo systemctl start clamav-freshclam.service
    $ sudo systemctl enable clamav-daemon.service
    $ sudo systemctl start clamav-daemon.service
    $ curl https://secure.eicar.org/eicar.com.txt |clamscan -
    输出必须包括:
    stdin: Win.Test.EICAR_HDB-1 FOUND

    2.3.2 tar -cpzvf /media/Sv/bk0913x-pkg.tgz --exclude=./var/cache/pacman/pkg/* ./

     # cd /media/Sarch/
     # df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sdb6        30G  6.1G   23G  22% /media/mint/Sarch
     # tar -cpzvf /media/Sv/bk0913x-pkg.tgz --exclude=./var/cache/pacman/pkg/* ./
     ~ <= 8min ~
     # du -sh bk0913x-pkg.tgz 
    1.9G	bk0913x-pkg.tgz
    
     # md5sum bk0913x-pkg.tgz 
    63598a394f2c0b3ce5f67e7e00b1b805  bk0913x-pkg.tgz
     # shasum bk0913x-pkg.tgz 
    f00fa8a751967f26b401ca208661d732f47ffeee  bk0913x-pkg.tgz
    

    2.3.3 小结

    备份使用2.3.2,排除pkg包可以显著减少备份体积。
    6.1G的桌面系统排除1.1G的pkg包,还有5G大小。压缩打包1.9Gb, 用时8分钟。

    通常,普通用户环境备份的内容就下面这5个文件夹

    • /usr 4.4Gb 142948 items
    • /var 1.4Gb 3496 items (/var/cache/pacman/pkg 1.1Gb 627 items)
    • /boot 74.1Mb 381 items
    • /root 53.3Mb 745 items
    • /etc 4.9Mb 1451 items

    连接目录:

    • bin -> usr/bin
    • lib -> usr/lib
    • lib64 -> usr/lib
    • sbin -> usr/bin

    系统运行过程目录,不需要备份

    rwxr-xr-x	5	4096	mnt
    rwxr-xr-x	20	3620	dev
    rwxr-xr-x	20	500	run
    r-xr-xr-x	13	0	sys
    r-xr-xr-x	222	0	proc
    rwxrwxrwt	10	260	tmp
    rwx------	2	16384	lost+found
    


    其他目录,普通用户很少会用到

    rwxr-xr-x	2	4096	opt
    rwxr-xr-x	4	4096	srv

    3. pkglist

    $ pacman -Qq |wc -l
    626

    $ pacman -Qqe |wc -l
    122

    xfce4-appfinder flameshot catfish network-manager-applet
    xfce4-artwork gimp xarchiver networkmanager
    xfce4-battery-plugin gedit unrar netctl
    xfce4-clipman-plugin vi unzip dhclient
    xfce4-cpugraph-plugin meld zip dialog
    xfce4-datetime-plugin hardinfo p7zip iw
    xfce4-dict htop nethogs thunar
    xfce4-diskperf-plugin neofetch iftop thunar-archive-plugin
    xfce4-eyes-plugin fd links thunar-media-tags-plugin
    xfce4-fsguard-plugin mlocate elinks thunar-volman
    xfce4-genmon-plugin convmv chromium xf86-input-libinput
    xfce4-mount-plugin dos2unix firefox xf86-video-intel
    xfce4-mpc-plugin exo v2r.. xfconf
    xfce4-netload-plugin alsa-utils shadow..... xfdesktop
    xfce4-notifyd pulseaudio privoxy xfwm4
    xfce4-panel baobab aria2 xfwm4-themes
    xfce4-power-manager ntfs-3g qbittorrent xorg-server
    xfce4-pulseaudio-plugin vlc clamav xorg-xinit
    xfce4-screensaver ristretto rkhunter adobe-source-han-sans-cn-fonts
    xfce4-sensors-plugin man-db whois ibus
    xfce4-session tree hexchat ibus-libpinyin
    xfce4-settings sudo traceroute intel-ucode
    xfce4-smartbookmark-plugin base rsync libreoffice-fresh
    xfce4-systemload-plugin garcon pacman-contrib libreoffice-fresh-zh-cn
    xfce4-taskmanager gvfs pacutils lightdm
    xfce4-terminal lsof pkgstats lightdm-gtk-greeter
    xfce4-time-out-plugin ltrace fzf virtualbox
    xfce4-timer-plugin strace lostfiles linux
    xfce4-verve-plugin tumbler mesa-demos linux-firmware
    xfce4-whiskermenu-plugin usbutils smartmontools grub
    xfce4-xkb-plugin     os-prober

    $ pacman -Qqd |wc -l
    504

    python gnupg pinentry xorg-fonts-encodings libnsl
    python-appdirs gnutls pixman xorg-iceauth libnumbertext
    python-cairo gobject-introspection-runtime polkit xorg-server-common libodfgen
    python-dbus gpgme polkit-gnome xorg-setxkbmap libogg
    python-dbus-common gpm poppler xorg-xauth libomxil-bellagio
    python-gobject gptfdisk poppler-data xorg-xkbcomp liborcus
    python-ordered-set graphite poppler-glib xorg-xmodmap libp11-kit
    python-packaging grep popt xorg-xprop libpagemaker
    python-pexpect groff procps-ng xorg-xrdb libpcap
    python-ptyprocess gsettings-desktop-schemas psmisc xorg-xset libpciaccess
    python-pyparsing gsfonts pygobject-devel xorgproto libpeas
    python-pyxdg gsm qrencode libabw libpgm
    python-setuptools gspell qt5-base libaio libpinyin
    python-six gtk-update-icon-cache qt5-svg libappindicator-gtk3 libpipeline
    python2 gtk2 qt5-x11extras libarchive libplacebo
    python2-dbus gtk3 raptor libass libplist
    python2-gobject gtksourceview3 rasqal libassuan libpng
    python2-gobject2 gtksourceview4 rav1e libasyncns libproxy
    a52dec gzip re2 libatasmart libpsl
    acl harfbuzz readline libatomic_ops libpulse
    adobe-source-code-pro-fonts harfbuzz-icu redland libavc1394 libqxp
    adwaita-icon-theme hicolor-icon-theme rest libblockdev libraw
    alsa-lib hidapi rtkit libbluray libraw1394
    alsa-topology-conf hunspell run-parts libbytesize librevenge
    alsa-ucm-conf hwids sdl libcanberra librsvg
    amtk hyphen sdl2 libcap libsamplerate
    aom iana-etc sed libcap-ng libsasl
    archlinux-keyring icu shaderc libcddb libseccomp
    argon2 inetutils shadow libcdio libsecret
    aribb24 iproute2 shared-mime-info libcdio-paranoia libsm
    at-spi2-atk iptables slang libcdr libsndfile
    at-spi2-core iputils snappy libcmis libsodium
    atk iso-codes sound-theme-freedesktop libcroco libsoup
    attr jack speex libcups libsoxr
    audit jansson speexdsp libdaemon libspiro
    avahi jasper spirv-tools libdatrie libssh
    babl js68 sqlite libdbusmenu-glib libssh2
    bash json-c srt libdbusmenu-gtk3 libstaroffice
    blas json-glib startup-notification libdca libtar
    bluez-libs kbd suitesparse libde265 libtasn1
    boost-libs keyutils sysfsutils libdrm libteam
    brotli kmod systemd libdvbpsi libthai
    btrfs-progs krb5 systemd-libs libe-book libtheora
    bzip2 kyotocabinet systemd-sysvcompat libebml libtiff
    c-ares l-smash taglib libedit libtirpc
    ca-certificates lame tar libelf libtommath
    ca-certificates-mozilla lapack tbb libepoxy libtool
    ca-certificates-utils lcms2 tdb libepubgen libtorrent-rasterbar
    cairo lensfun tepl libetonyek libunistring
    cantarell-fonts less thin-provisioning-tools libevdev libunwind
    clucene licenses tre libevent libupnp
    colord linux-api-headers tslib libexif libusb
    coreutils llvm-libs ttf-liberation libexttextcat libusbmuxd
    cryptsetup lm_sensors tzdata libffi libva
    curl lpsolve uchardet libfontenc libvdpau
    dav1d lua51 udisks2 libfreehand libvisio
    db lua52 upower libgcrypt libvorbis
    dbus lua53 usbmuxd libgexiv2 libvpx
    dbus-glib luajit util-linux libglvnd libwacom
    dconf lvm2 util-linux-libs libgpg-error libwebp
    desktop-file-utils lz4 v2r..-domain-list-community libgudev libwmf
    device-mapper lzo v2r..-geoip libgusb libwnck3
    diffutils mailcap v4l-utils libheif libwpd
    dmraid md4c vid.stab libibus libwpg
    dosfstools mdadm virtualbox-host-modules-arch libice libwps
    double-conversion mesa vmaf libidn libx11
    e2fsprogs metis volume_key libidn2 libxau
    elfutils minizip vte-common libiec61883 libxcb
    enchant mkinitcpio vte3 libimobiledevice libxcomposite
    exiv2 mkinitcpio-busybox vulkan-icd-loader libindicator-gtk3 libxcrypt
    expat mobile-broadband-provider-info wayland libinput libxcursor
    faad2 mpfr wayland-protocols libixion libxdamage
    fakeroot mtdev webrtc-audio-processing libjpeg-turbo libxdmcp
    ffmpeg mypaint-brushes1 wget libkeybinder3 libxext
    file ncurses which libksba libxfce4ui
    filesystem ndctl wpa_supplicant liblangtag libxfce4util
    findutils neon x264 libldap libxfixes
    flac nettle x265 libmad libxfont2
    fontconfig nm-connection-editor xcb-proto libmatroska libxft
    freeglut npth xcb-util libmfx libxi
    freetype2 nspr xcb-util-image libmicrohttpd libxinerama
    fribidi nss xcb-util-keysyms libmm-glib libxkbcommon
    fuse-common opencc xcb-util-renderutil libmng libxkbcommon-x11
    fuse2 opencore-amr xcb-util-wm libmnl libxkbfile
    fuse3 openexr xdg-utils libmodplug libxklavier
    gawk openjpeg2 xfsprogs libmpcdec libxml2
    gc openresolv xkeyboard-config libmpd libxmu
    gcc-libs openssl xmlsec libmpeg2 libxpm
    gcr opus xvidcore libmspack libxpresent
    gdbm orc xxhash libmspub libxrandr
    gdk-pixbuf2 p11-kit xz libmwaw libxrender
    gegl pacman zeromq libmypaint libxres
    gettext pacman-mirrorlist zita-alsa-pcmi libndp libxshmfence
    giflib pam zita-resampler libnetfilter_conntrack libxslt
    glew pambase zlib libnewt libxss
    glib-networking pango zstd libnfnetlink libxt
    glib2 parted   libnftnl libxtst
    glibc pciutils   libnghttp2 libxv
    glslang pcre   libnl libxvmc
    glu pcre2   libnm libxxf86vm
    gmp perl   libnma libyaml
    gnome-themes-extra perl-uri   libnotify libzmf
  • 相关阅读:
    poj 1159
    poj1102
    在WebDynpro中的table控件中添加Search help的方法
    用Writer写的第一篇日志
    上路
    C# IList, ArrayList与List的区别详解 & 简单用法举例
    诸葛亮为什么难以入围千古名相之列
    Silverlight5.0正式发布附下载地址
    arcgis server 9.3 问题总结[转]
    AO 直接调用GeoProcessing 工具
  • 原文地址:https://www.cnblogs.com/sztom/p/13664349.html
Copyright © 2011-2022 走看看