私はUbuntuを初めて使用するため、バックアップを作成したいと考えています。どのファイルとフォルダーを含めるか本当にわからないので、システムを復元すると、現在の状態になります。私はどこでもこれの良い詳細を見つけることができないようです。うまくいけば誰かがこれで私を助けることができます。現在のようにすべてをバックアップすることは可能ですか?システムを復元する場合、プログラムと設定を再インストールする必要はありませんか?
私はUbuntuを初めて使用するため、バックアップを作成したいと考えています。どのファイルとフォルダーを含めるか本当にわからないので、システムを復元すると、現在の状態になります。私はどこでもこれの良い詳細を見つけることができないようです。うまくいけば誰かがこれで私を助けることができます。現在のようにすべてをバックアップすることは可能ですか?システムを復元する場合、プログラムと設定を再インストールする必要はありませんか?
回答:
私のバックアップセットには現在含まれています
/etc
/home
/root
/srv
/usr (/usr/local only, nothing else)
/var (except /var/run, /var/cache, /var/tmp)
これはサーバー用であるため、/ etcのようなものをバックアップすると、私のサービスのすべての構成が保存され、/ srvに Webサーバーがあります(/ var / wwwにある場合、これらはまだこのバックアップセットにあります) 、/ usr / localなどにさまざまなスクリプトと設定があります。バックアップホーム/の代わりに/ホーム/ myusernameと指定は、私はすべてのユーザーを保存することができるようです。保持する必要があるのがユーザーデータのみである場合は、ホームディレクトリのみが必要です。
/usr/local/sbin/
.cache
各ユーザーのホームディレクトリ(~/.cache
)にフォルダーを含める必要がありますか、それも省略できますか?数万のファイルと数ギガバイトのデータになる可能性があります。私の理解では、これを含めないと、アプリケーションは次に実行するときに一時的なキャッシュファイルを再生成する必要があり、実行時間と起動時間が増加しますが、無害です。
~/.cache
サウンドを除外しても問題ありません。私はそれを自分で除外しませんが、データ転送/同期時間を削減したい場合、それはオプションです。
/opt
が、使用する場合は、バックアップに含めることができます。 /opt
自身がそれをユーザーに任せるのディストリビューションで使用されていない傾向にあるが、それにインストールされている彼らのサードパーティ製アプリでのLinuxシステムを提供するアプリケーション・ベンダーは、使用する可能性がある/opt
か、あなたがあなた自身のソフトウェアを開発する場合、あなたはそれを持っていること/opt
の代わりに/usr/local
バックアップする必要があるものは、特定のシステムによって異なります*。
そのため、これを整理するために少し作業が必要になります。していないことを理解することから始めますバックアップする必要のから始めます。最初にルートディレクトリを確認してから、逆方向に作業します。
たとえば、cd /; ls -F
私に与えます:
bin/ initrd.img@ mnt/ snap/ vmlinuz@
boot/ initrd.img.old@ opt/ srv/ vmlinuz.old@
cdrom/ lib/ proc/ sys/
dev/ lib64/ root/ tmp/
etc/ lost+found/ run/ usr/
home/ media/ sbin/ var/
/cdrom
、/media
、および/mnt
マウントポイントをされているので、バックアップを必要としません。
/dev
、/lost+found
、/proc
、/run
、/sys
および/tmp
自動再起動時に再作成されます。[:私は推測しているリンク/initrd.img@
、/initrd.img.old@
、/vmlinuz@
(私はわからないんだけどどの)、ブートUbuntuの再インストールに再作成されます/vmlinuz.old@~~MD~~auxを。]
私のシステム/root
は空です(sudo -s
rootユーザーとしてシェルを開いて表示するために使用してください... exit
検査した直後に注意してください/root
)。
/snap
も空です。おそらく、マウントポイントです。
/var
システムロギングファイル、メールおよびプリンタースプールディレクトリ、一時ファイルおよび一時ファイルなどの変数データが含まれています。」/ var / logを除き、現在バックアップしています。ref:http : //www.tldp.org/LDP/Linux- Filesystem-Hierarchy / html / var.html)
/bin
、/boot
、/lib
、/lib64
、そして/sbin
あなたがそのようなシステムの開発作業や何かをやっている場合を除き、おそらくUbuntuでの再インストールを経由して再ロードされます。これらをバックアップするか、新規インストールを使用してそれらを回復できます。
/home
独自のバックアップにある必要があります。ちょうど復元したい場合があります/home
。
あなたがお使いのシステムに対して行ったことの葉、その他の変更/etc
、/opt
、/srv
、および/usr
あなたは一緒に、または個別に、また、バックアップしたいであろう。
これらのディレクトリを理解するのに役立つかもしれないページがいくつかあります:
http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/the-root-directory.html http://www.tldp.org/LDP/intro-linux/html/sect_03_01.html#sect_03_01_03
関連する考え方は次のとおり です。新しいUbuntuをインストールしたとしましょう。何をバックアップする必要がありますか?答え:何もありません。まだ何も変更していないので、単純にUbuntuを再インストールできます。/ bin、/ etc、/ root、/ usrなどを復元します。
したがって、/ binをバックアップする唯一の理由は、変更または追加したためです。そのため、バックアップの一部は、作成および変更された場所と時期を理解することです。残りの人たちもこれに苦労していることを知ってください。
*****そして、あなたは尋ねなかったけれども、人はフルディスクまたはパーティションイメージを作ることができます。これらはバックアップと復元に時間がかかり、作業の進行中にシステムが停止する可能性があります。そして、Acronisを使用してWindowsシステムをバックアップする方法です。彼らが提供するものの1つは、パーティションマップと非Linuxパーティションのイメージです。パーティションを再編成する前、およびバックアップ復元機能をテストする前に、これらを作成します。
(これをどのように改善できるかについての提案に非常にオープンです。)
デスクトップシステムを再インストールする場合、バックアップします
/etc
/var
、私はいくつかのサブフォルダを除外するのが面倒です/opt
/home
は別のパーティションにあり、毎日バックアップを作成しています。
再インストール後、バックアップからパーツを復元します。これは本当に必要です。
この戦略では、すべての構成、ローカルメール、およびcrontab構成が安全であり、必要なアプリケーションのみを再インストールする必要があります。
個人用スクリプトはホームフォルダーに保存されます(毎日のバックアップ、覚えていますか?)。したがって、私はを使用しません/usr/local
。
/opt
必要なものは何ですか?すなわち:なぜそれをバックアップしますか?
ほとんどの人はホームディレクトリをバックアップするだけ/home/$USER/
です:。構成ファイルと設定をバックアップする場合、それらは、ホームディレクトリ内ので始まるフォルダーとファイルに保存されます。(ドット)。使用するパッケージ(およびPPA)のリストを作成すると、必要に応じてすべてのパッケージを簡単に再インストールできます。または、このコメントで説明されているコマンドを使用します。
Deja Dup Backupは、Ubuntuのデフォルトとして提供される優れたツールです。その他のオプションには、コマンドライン(rsync、rsnapshot、rdiff-backupなど)が含まれます。
最後に、ディスク全体をイメージとしてバックアップするには、clonezillaをチェックしてください。
/var/spool/cron
も行ってください。
ここでファイルのリストを収集しましょう。この投稿を「コミュニティwiki」にしました。
もちろん、それは人によって異なります。鉱山は、主にWebサーバーおよびNFSサーバーとして使用されます。
mkdir $MY_BACKUP_FOLDER
cd $MY_BACKUP_FOLDER
sudo rsync -a --relative /var/spool/cron/crontabs .
sudo rsync -a --relative /etc/exports .
sudo rsync -a --relative /etc/sudoers .
sudo rsync -a --relative /etc/apache2/apache2.conf .
sudo rsync -a --relative /etc/auto* .
sudo rsync -a --relative /etc/fstab .
sudo rsync -a --relative /etc/hosts .
sudo rsync -a --relative /etc/samba/smb.conf .
sudo rsync -a --relative /etc/udev .
sudo rsync -a --relative /etc/updatedb.conf .
sudo rsync -a --relative /usr/share/applications .
私にとって重要なことをバックアップします。これは、私の知的財産と、Ubuntuが完全に動作するように構成することに費やされた努力として大まかに定義できます(私にとって)。
毎朝午前4時に、またはラップトップがサスペンドから再開するたびにバックアップを実行します。/etc/cron.daily
スクリプトを介して制御されます。
最高の種類のバックアップは、コンピューターが置かれている火災や洪水の場合はオフサイトであるため、15GBの無料のgmail.comアカウントを活用して、そこに毎日圧縮されたバックアップを送信します。
数年後、15 GBの "無料"クォータに達したので、バックアップを180日、78週間、36か月、100年のバックアップにリサイクルするスクリプトを書きました。
ここで毎日のバックアップスクリプト私にとって何が重要かのは:
#!/bin/bash
# NAME: daily-backup.sh
# PATH: /mnt/e/bin
# DESC: Backup scripts, documents and configuration files to .tar
# DATE: July 11, 2017. Modified July 7, 2019.
HomeDir="/home/USER_NAME" # Required for cron compatibility
EmailAddr="EMAIL_NAME@gmail.com"
# PARM: 1=backup file name. Extension .tar.gz automatically appended.
# NOTE: To include MBR (Master Boot Record) in backup create an image using:
# sudo dd if=/dev/sda of="$HOME/.mbr.sav" bs=512 count=1
# NOTE: CLONE CURRENT INSTALLATION TO NEW MACHINE
# =========================================
# To restore use Live USB to install Ubuntu alongside Windows 10
# Connect to network with password xxxxxxxxx
# Install Google Chrome
# (https://askubuntu.com/questions/510056/how-to-install-google-chrome):
# wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub
# | sudo apt-key add
# echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/
# stable main' | sudo tee /etc/apt/sources.list.d/google-chrome.list
# sudo apt update
# sudo apt install google-chrome-stable
# Open gmail.com and download attachment `$1` which is usually called
# Backup-yymmdd-DayOfWeekName.tar
# Make missing home/bin directory which tar doesn't create automatically:
# mkdir ~/bin
# Restore the daily backup using:
# sudo tar -xvf Backup-yymmdd-DayFfWeekName.tar -C /
# yar -xvf Backup-yymmdd-DayFfWeekName.tar -C /
# Patch /etc/default/grub with new machine parameters, ie for nvme use:
# acpiphp.disable=1
# Use `sudo apt install aptitude-common`
# Clone packages using `aptitude-create-state-bundle` on Source
# Copy state-bundle.tar file from Source to Target machine
# Restore packages using `aptitude-run-state-bundle` on Target
# Manually copy ~/Pictures, ~/Videos, etc. not in daily backup.
# sudo update-grub # NVMe suspend/resume acpiphp.disable=1
# sudo update-initramfs # to get plymouth sunrise splash screen
if [[ $# -ne 1 ]]; then
echo 'One argument required for file name, e.g. "Backup-2017-10-21-Saturday"'
echo '.tar will automatically be added as a file extension'
exit 1
fi
Filename="$1.tar"
cd $HomeDir ||
exit 1
dpkg --get-selections > .packages # List of installed applications
tar -cvpf "$Filename" bin # create .tar & add user scripts
tar -rvpf "$Filename" .config/autostart # autostart programs configuration
tar -rvpf "$Filename" /usr/local/bin # add global root-based scripts
tar -rvpf "$Filename" /etc/cron* # crontab, cron.d, cron.daily, etc
tar -rvpf "$Filename" /etc/system* # systemd files: login.conf, etc.
tar -rvpf "$Filename" /lib/systemd/system-sleep
tar -rvpf "$Filename" /etc/rc.local # Startup script: calls zaprestore.
tar -rvpf "$Filename" /etc/sudoers # 120 minute sudo, stars in password
tar -rvpf "$Filename" /etc/environment # PATH backup
tar -rvpf "$Filename" /etc/default/grub # bootstrap loader
#July 20, 2018 - /boot/grub takes 5MB+
#tar -rvpf "$Filename" /boot/grub # Custom grub fonts and splash...
tar -rvpf "$Filename" /usr/share/plymouth # ... screen (plymouth)
#included above tar -rvpf "$Filename" /usr/share/plymouth/themes/earth-sunrise/
tar -rvpf "$Filename" /usr/share/grub/themes/Tuxkiller2/
tar -rvpf "$Filename" /etc/grub.d # 00_header, etc. changes
tar -rvpf "$Filename" Desktop # files and links on desktop
tar -rvpf "$Filename" Documents/*.od* # Libre Office: *.ods, *.odt, etc.
# Trusted keys to install from third party PPAs
tar -rvpf "$Filename" /etc/apt/trusted.gpg
tar -rvpf "$Filename" /etc/apt/trusted.gpg.d
# Sources for repositories - 1) Main single file - 2) directory of files
tar -rvpf "$Filename" /etc/apt/sources.list
tar -rvpf "$Filename" /etc/apt/sources.list.d
# find all $HOME/.config files and add to .tar
find .* -maxdepth 0 -type f -exec tar -rvf "$Filename" {} +
# Nautilus custom scripts
tar -rvpf "$Filename" .local/share/nautilus/scripts
# /etc/udev rules
tar -rvpf "$Filename" /etc/udev/rules.d
# /etc/rc.local
tar -rvpf "$Filename" /etc/rc.local
# /etc/X11/xorg.conf.d
tar -rvpf "$Filename" /etc/X11/xorg.conf.d
# /mnt/e - shared WSL + Linux
tar -rvpf "$Filename" /mnt/e/bin
tar -rvpf "$Filename" /mnt/e/Documents
# ~/eyesome - Development version
tar -rvpf "$Filename" eyesome
# ~/gmail - Python and Bash scripts but NOT huge data files
tar -rvpf "$Filename" gmail/*.py
tar -rvpf "$Filename" gmail/*.sh
tar -rvpf "$Filename" gmail/go
tar -rvpf "$Filename" gmail/BackupSets
tar -rvpf "$Filename" gmail/BackupDays
echo "Complete file list with sizes..."
tar -tvf "$Filename" > BackupLog # list filenames and sizes
chmod a+w BackupLog # give user delete access
echo "Compressing with gzip..."
gzip "$Filename"
Filename="$Filename.gz"
echo "Emailing: $EmailAddr"
# From: https://internetlifeforum.com/gmail/2251-gmail-some-file-types-blocked-fix-how-go-around/
# cat archive.tar.gz | base64 > file
# then i sent the file via email:
# echo "Base64 encoded file" | mutt -a file -s subject -- mymail@gmail.com
# then mail was delivered properly! Then when one need to get readable archive
# again, he need to decode it by base64. In my case i do it via linux command line:
# cat file | base64 -d > decodedarchive.tar.gz
Filename64="$Filename.64"
cat "$Filename" | base64 > "$Filename64"
mail -a "$Filename64" -s "$Filename64" "$EmailAddr" < BackupLog
ls -la "$Filename" "$Filename64"
rm "$Filename" "$Filename64"
exit 0