https://wiki.archlinux.org/api.php?action=feedcontributions&user=Dispater124&feedformat=atomArchWiki - User contributions [en]2024-03-29T12:18:58ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Synchronization_and_backup_programs&diff=221830Synchronization and backup programs2012-09-07T03:54:57Z<p>Dispater124: </p>
<hr />
<div>[[Category:Data compression and archiving]]<br />
[[Category:System recovery]]<br />
[[ru:Backup Programs]]<br />
This wiki page contains information about various backup programs. It's a good idea to ''have'' regular backups of important data, most notably configuration files ({{Ic|/etc/*}}) and the local pacman database (usually {{Ic|/var/lib/pacman/local/*}}).<br />
<br />
== Introduction ==<br />
Before you start trying various programs out, try to think about your needs, e.g. consider the following questions:<br />
* What backup medium do I have available? (CD, DVD, remote server, external hard drive, etc.)<br />
* How often do I plan to backup? (daily, weekly, monthly, etc.)<br />
* What features do I expect from the backup solution? (compression, encryption, handles renames, etc.)<br />
* How do I plan to restore backups if needed?<br />
<br />
== Incremental backups ==<br />
Applications that can do incremental backups remember and take into account what data has been backed up during the last run and eliminate the need to have duplicates of unchanged data. Restoring the data to a certain point in time would require locating the last full backup and all the incremental backups from then to the moment when it is supposed to be restored. This sort of backup is useful for those who do it very often.<br />
<br />
=== Rsync-type backups ===<br />
The main characteristic of this type of backups is that they maintain a copy of the directory you want to keep a backup of, in a traditional "mirror" fashion.<br />
<br />
Certain rsync-type packages also do snapshot backups by storing files which describe how the contents of files and folders changed from the last backup (so-called 'diffs'). Hence, they are inherently incremental, but usually they do not have compression or encryption. On the other hand, a working copy of everything is immediately available, no decompression/decryption needed. A downside to rsync-type programs is that they cannot be easily burned and restored from a CD or DVD.<br />
<br />
==== Console ====<br />
* {{App|[[rsync]]|A file transfer program to keep remote files in sync.<br />
** rsync almost always makes a mirror of the source.<br />
** Impossible to restore a full backup before the most recent backup (but you can use --backup to keep old versions of the files).<br />
** Standard install on all distros.<br />
** Can run over SSH (port 22) or native rsync protocol (port 873).<br />
** Win32 version available.<br />
|http://rsync.samba.org/|{{Pkg|rsync}}}}<br />
<br />
* {{App|[[Wikipedia:Rsync#Variations|rdiff-backup]]|A utility for local/remote mirroring and incremental backups.<br />
** Stores the most recent backup as regular files.<br />
** To revert to older versions, you apply the diff files to recreate the older versions.<br />
** It is granularly incremental (delta backup), it only stores changes to a file; will not create a new copy of a file upon change.<br />
** Win32 version available.<br />
|http://www.nongnu.org/rdiff-backup/|{{Pkg|rdiff-backup}}}}<br />
<br />
* {{App|rsnapshot|A remote filesystem snapshot utility.<br />
** Does not store diffs, instead it copies entire files if they have changed.<br />
** Creates hard links between a series of backed-up trees (snapshots).<br />
** It is differential in that the size of the backup is only the original backup size plus the size of all files that have changed since the last backup.<br />
** Destination filesystem must support hard links.<br />
** Win32 version available.<br />
|http://www.rsnapshot.org/|{{Pkg|rsnapshot}}}}<br />
<br />
* {{App|SafeKeep|A client/server backup system which uses rdiff-backup.<br />
** Integrates with Linux LVM and databases to create consistent backups.<br />
** Bandwidth throttling.<br />
|http://safekeep.sourceforge.net/|{{AUR|safekeep}}}}<br />
<br />
* {{App|Link-Backup|A tool similar to rsync based scripts, but which does not use rsync.<br />
** Creates hard links between a series of backed-up trees (snapshots).<br />
** Intelligently handles renames, moves, and duplicate files without additional storage or transfer.<br />
** The backup directory contains {{ic|.catalog}}, a catalog of all unique file instances; backup trees hard-link to this catalog.<br />
** Transfer occurs over standard I/O locally or remotely between a client and server instance of this script.<br />
** It copies itself to the server; it does not need to be installed on the server.<br />
** Requires SSH for remote backups.<br />
** It resumes stopped backups; it can even be told to run for an arbitrary number of minutes.<br />
|http://www.scottlu.com/Content/Link-Backup.html|{{AUR|link-backup}}}}<br />
<br />
* {{App|[[Wikipedia:Unison|Unison]]|A program that synchronizes files between two machines over network (LAN or Inet) using a smart diff method + rsync. Allows the user to interactively choose which changes to push, pull, or merge.|http://www.cis.upenn.edu/~bcpierce/unison/|{{Pkg|unison}}}}<br />
<br />
* {{App|oldtime|A highly customizable and configurable backup & restore system.|https://github.com/GutenYe/oldtime|}}}<br />
<br />
==== Graphical ====<br />
* {{App|Back In Time|A simple backup tool for Linux inspired by the [[Wikipedia:FlyBack|FlyBack]] and [https://wiki.ubuntu.com/TimeVault/ TimeVault] projects.<br />
** Creates hard links between a series of backed-up trees (snapshots).<br />
** Really is just a front-end to {{ic|rsync}}, {{ic|diff}}, {{ic|cp}}.<br />
** A new snapshot is created only if something changed since the last snapshot.<br />
|http://backintime.le-web.org/|{{AUR|backintime}}}}<br />
<br />
* {{App|[[Wikipedia:FlyBack|FlyBack]]|A clone of Apple's [[Wikipedia:Time Machine (Mac OS)|Time Machine]], a backup utility for Mac OS X.|http://www.flyback-project.org/|{{AUR|flyback}}}}<br />
<br />
* {{App|[[Wikipedia:Areca Backup|Areca Backup]]|An easy to use and reliable backup solution for Linux and Windows.<br />
** Written in Java.<br />
** Primarily archive-based (zip), but will do file-based backup as well.<br />
** Delta backup supported (stores only changes).<br />
|http://areca.sourceforge.net/|{{AUR|areca}}}}<br />
<br />
* {{App|[[Wikipedia:LuckyBackup|luckyBackup]]|An easy program to backup and sync your files.<br />
** It is written in Qt and C++.<br />
** It has sync, backup (with include and exclude options) and restore capabilities.<br />
** It can do remote connection backups, scheduled backups.<br />
** A command line mode.<br />
|http://luckybackup.sourceforge.net/index.html|{{AUR|luckybackup}}}}<br />
<br />
* {{App|syncBackup|A front-end for rsync that provides a fast and extraordinary copying tool. It offers the most common options that control its behavior and permit very flexible specification of the set of files to be copied.<br />
|http://www.darhon.com/syncbackup|{{AUR|syncbackup}}}}<br />
<br />
* {{App|[[BackupPC]]|A high-performance, enterprise-grade system for backing up Unix, Linux, Windows, and Mac OS X desktops and laptops to a remote server.<br />
** Deduplication: Identical files across multiple backups of the same or different PCs are stored only once resulting in substantial savings in disk storage and disk I/O.<br />
** Optional compression support further reducing disk storage.<br />
** No client-side software is needed.<br />
** Simple but powerful web-based UI.<br />
|http://backuppc.sourceforge.net/index.html|{{Pkg|backuppc}}}}<br />
<br />
=== Other backups ===<br />
Most other backup applications tend to create (big) archive files and (of course) keep track of what's been archived. Creating {{ic|.tar.bz2}} or {{ic|.tar.gz}} archives has the advantage that you can extract the backups with just tar/bzip2/gzip, so you do not need to have the backup program around.<br />
<br />
==== Console ====<br />
* {{App|Backup Manager|A command line backup tool for Linux, designed to help you make daily archives of your file system.<br />
** Manual and automatic (via [[cron]]) backup.<br />
** Backups can be stored in files, MySQL or SVN repositories.<br />
** Specify multiple targets to backup at once (/etc, /home, etc.) with blacklisting of files or sub-directories.<br />
** Full or Incremental backup.<br />
** Backup to CD/DVD, LAN or a remote server via FTP, SSH, rsync or Amazon S3.<br />
** Compression and encryption.<br />
** Can run different instances with different configuration files concurrently.<br />
|http://www.backup-manager.org/|{{AUR|backup-manager}}}}<br />
<br />
* {{App|Arch Backup|A trivial backup scripts with simple configuration.<br />
** Configurable compression method.<br />
** Multiple backup targets.<br />
|http://code.google.com/p/archlinux-stuff/|{{Pkg|arch-backup}}}}<br />
<br />
* {{App|[[Backup with hdup|hdup]]|A very simple command line backup tool.<br />
** Creates tar.gz or tar.bz2 archives.<br />
** Supports gpg encryption.<br />
** Supports pushing over SSH.<br />
** Multiple backup targets.<br />
|http://miek.nl/projects/hdup2/|{{AUR|hdup}}}}<br />
<br />
* {{App|rdup|A platform for backups that provides scripts to facilitate backups and delegates the encryption, compression, transfer and packaging to other utilities in a true Unix-way.<br />
** Creates tar.gz archives or rsync-type copy.<br />
** Encryption (gpg, blowfish and others); also applies for rsync-type copy.<br />
** Compression (also for rsync-type copy).<br />
|http://miek.nl/projects/rdup|{{AUR|rdup}}}}<br />
<br />
* {{App|[[Duplicity]]|A simple command-line utility which allows encrypted compressed incremental backup to nearly any storage.<br />
** Supports gpg encryption and signing.<br />
** Supports gzip compression.<br />
** Supports full or incremental backups, incremental backup stores only difference between new and old file.<br />
** Supports pushing over FTP, SSH, rsync, WebDAV, WebDAVs, HSi and Amazon S3 or local filesystem.<br />
|http://www.nongnu.org/duplicity/|{{Pkg|duplicity}}}}<br />
<br />
* {{App|[[Wikipedia:DAR (Disk Archiver)|DAR]]|A full-featured command-line backup tool, short for Disk ARchive.<br />
** It uses its own format for archives (so you need to have it around when you want to restore).<br />
** Supports splitting backups into more files by size.<br />
** Makefile-type config files, some custom scripts are available along with it.<br />
** Supports basic encryption.<br />
** Automatic backup using [[cron]] is possible with {{AUR|sarab}}.<br />
|http://dar.linux.free.fr/|{{AUR|dar}} {{AUR|kdar}} (fontend)}}<br />
<br />
* {{App|Manent|An algorithmically strong backup and archival program.<br />
** Efficient backup to anything that looks like a storage.<br />
** Works well over a slow and unreliable network.<br />
** Offers online access to the contents of the backup.<br />
** Backed up storage is completely encrypted.<br />
** Several computers can use the same storage for backup, automatically sharing data.<br />
** Not reliant on timestamps of the remote system to detect changes.<br />
** Cross-platform support for Unicode file names.<br />
|http://code.google.com/p/manent/|{{AUR|manent}}}}<br />
<br />
==== Graphical ====<br />
* {{App|Backerupper|A simple program for backing up selected directories over a local network. Its main intended purpose is backing up a user's personal data.<br />
** Creates {{ic|.tar.gz}} archives.<br />
** Configurable backup frequency, backup time and max copies.<br />
|http://sourceforge.net/projects/backerupper/|{{AUR|backerupper}}}}<br />
<br />
* {{App|[[Duplicity|Déjà Dup]]|A simple GTK+ backup program. It hides the complexity of doing backups the 'right way' (encrypted, off-site, and regular) and uses duplicity as the backend.<br />
** Automatic, timed backup configurable in GUI.<br />
** Restore wizard.<br />
** Integrated into the Nautilus file manager.<br />
** Inherits several features of duplicity.<br />
|https://launchpad.net/deja-dup|{{Pkg|deja-dup|}}}}<br />
<br />
* {{App|Synkron|A folder synchronization tool.<br />
** Syncs multiple folders.<br />
** Can exclude files from sync based on wildcards.<br />
** Restores files.<br />
** Cross-platform support.<br />
|http://synkron.sourceforge.net/|{{AUR|synkron}}}}<br />
<br />
== Cloud backups ==<br />
* {{App|[[Wikipedia:CrashPlan|CrashPlan]]|An online/offsite backup solution.<br />
** Unlimited online space for very reasonable pricing.<br />
** Automatic and incremental backups to multiple destinations.<br />
** Intuitive GUI.<br />
** Offers encryption and de-duplication.<br />
** Software is generally free.<br />
|http://www.crashplan.com/|{{AUR|crashplan}}}}<br />
<br />
* {{App|[[Dropbox]]|A popular file-sharing service.<br />
** A daemon monitors a specified directory, and uploads incremental changes to dropbox.com. <br />
** Changes automatically show up on your other computers. <br />
** Includes file sharing and a public directory. <br />
** You can recover deleted files. <br />
** Community written add-ons. <br />
** Free accounts have 2GB storage.<br />
|http://www.getdropbox.com|{{AUR|nautilus-dropbox}} &ndash; extension for [[Nautilus]], {{AUR|dropbox}} &ndash; without Gnome dependencies}}<br />
<br />
* {{App|[[Wikipedia:Jungle Disk|Jungle Disk]]|An online backup tool that stores its data in Amazon S3 or Rackspace Cloud Files.<br />
** A Nautilus extension.<br />
** Only paid plans available.<br />
|http://www.jungledisk.com/|{{AUR|nautilus-jungledisk}}}}<br />
<br />
* {{App|Tarsnap|A secure online backup service for BSD, Linux, OS X, Solaris and Windows (through Cygwin).<br />
** Compressed encrypted backups to Amazon S3 Servers.<br />
** Automate via [[cron]].<br />
** Incremental backups.<br />
** Backup any files or directories.<br />
** Command line only client.<br />
** Pay only for usage (bandwidth and storage). <br />
|http://www.tarsnap.com|{{Pkg|tarsnap}}}}<br />
<br />
* {{App|[[Wikipedia:Wuala|Wuala]]|A secure online storage, file synchronization, versioning and backup service.<br />
** Closed source, free and paid version available.<br />
** Free account holds 5GB.<br />
** Includes file sharing and a public directory.<br />
** Incremental backup and sync are both supported.<br />
** Social networking features.<br />
** All files in the cloud are first encrypted locally.<br />
|http://www.wuala.com/|{{AUR|wuala}}, {{AUR|wuala-daemon}} &ndash; to run as daemon}}<br />
<br />
* {{App|[[Wikipedia:SpiderOak|SpiderOak]]|An online backup tool for Windows, Mac and Linux users to back up, share, sync, access and store[1] their data.<br />
** Free and paid version available.<br />
** Free account holds 2GB.<br />
** Includes file sharing and a public directory.<br />
** Incremental backup and sync are both supported.<br />
|https://spideroak.com/|{{AUR|spideroak}}}}<br />
<br />
* {{App|[[Ubuntu One]]|An online storage service with sync and sharing across platforms.<br />
** Free and payed versions available.<br />
** Free account with 5GB.<br />
** Mobile access.<br />
** Music streaming.<br />
|https://one.ubuntu.com/services/|{{Pkg|ubuntuone-client}}}}<br />
<br />
* {{App|Packrat|A simple, modular backup system that uses [[Wikipedia:DAR (Disk Archiver)|DAR]] to take full or incremental backups of files and can store them locally, on a remote system via SSH, or on Amazon S3.|http://www.zeroflux.org/projects|{{AUR|packrat}}}}<br />
<br />
== Non-incremental backups ==<br />
Another type of backups are those used in case of a disaster. These include application that allow easy backup of entire filesystems and recovery in case of failure, usually in the form of a Live CD or USB drive. The contains complete system images from one or more specific points in time and are frequently used by to record known good configurations.<br />
<br />
* {{App|Q7Z|P7Zip GUI for Linux, which attempts to simplify data compression and backup. It can create the following archive types: 7z, BZip2, Zip, GZip, Tar.<br />
** Updates existing archives quickly.<br />
** Backup multiple folders to a storage location.<br />
** Create or extract protected archives.<br />
** Lessen effort by using archiving profiles and lists.<br />
|http://k7z.sourceforge.net/|{{AUR|q7z}}}}<br />
<br />
* {{App|[[Partclone]]|A tool that can be used to back up and restore a partition while considering only used blocks.<br />
** Supports ext2, ext3, hfs+, reiser3.5, reiser3.6, reiser4, ext4 and btrfs.<br />
** Supports compression.<br />
|http://partclone.nchc.org.tw/trac/|{{AUR|partclone}}}}<br />
<br />
* {{App|[[Wikipedia:Redo Backup and Recovery|Redo Backup and Recovery]]|A backup and disaster recovery application that runs from a bootable Linux CD image.<br />
** Is capable of bare-metal backup and recovery of disk partitions.<br />
** Uses [http://www.xpud.org/ xPUD] and [[Partclone]] for the backend.<br />
|http://www.redobackup.org/|}}<br />
<br />
* {{App|[[Wikipedia:Clonezilla|Clonezilla]]|A disaster recovery, disk cloning, disk imaging and deployment solution.<br />
** Boots from live CD, USB flash drive, or PXE server.<br />
** Supports ext2, ext3, ext4, reiserfs, reiser4, xfs, jfs, btrfs FAT32, NTFS, HFS+ and others.<br />
** Uses Partclone (default), Partimage (optional), ntfsclone (optional), or dd to image or clone a partition.<br />
** Multicasting server to restore to many machines at once.<br />
|http://clonezilla.org/|{{AUR|clonezilla}}}}<br />
<br />
* {{App|[[Wikipedia:Partimage|Partimage]]|A disk cloning utility for Linux/UNIX environments.<br />
** Has a Live CD.<br />
** Supports the most popular filesystems on Linux, Windows and Mac OS.<br />
** Compression.<br />
** Saving to multiple CDs or DVDs or across a network using Samba/NFS.<br />
|http://www.partimage.org/Main_Page|{{Pkg|partimage}}}}<br />
<br />
* {{App|FSArchiver|A safe and flexible file-system backup and deployment tool<br />
** Support for basic file attributes (permissions, owner, ...).<br />
** Support for multiple file-systems per archive.<br />
** Support for extended attributes (they are used by SELinux).<br />
** Support the basic file-system attributes (label, uuid, block-size) for all linux file-systems.<br />
** Support for [http://www.fsarchiver.org/Cloning-ntfs ntfs filesystems] (ability to create flexible clones of a Windows partitions).<br />
** Checksumming of everything which is written in the archive (headers, data blocks, whole files).<br />
** Ability to restore an archive which is corrupt (it will just skip the current file).<br />
** Multi-threaded lzo, gzip, bzip2, lzma compression.<br />
** Support for splitting large archives into several files with a fixed maximum size.<br />
** Encryption of the archive using a password. Based on blowfish from libcrypto from [[OpenSSL]].<br />
** Support backup of a mounted root filesystem (-A option).<br />
|http://www.fsarchiver.org/Main_Page|{{Pkg|fsarchiver}}}}<br />
<br />
* {{App|[[Wikipedia:Mondo Rescue|Mondo Rescue]]|A disaster recovery solution to create backup media that can be used to redeploy the damaged system.<br />
** Image-based backups, supporting Linux/Windows.<br />
** Compression rate is adjustable.<br />
** Can backup live systems (without having to halt it).<br />
** Can split image over many files.<br />
** Supports booting to a Live CD to perform a full restore.<br />
** Can backup/restore over NFS, from CDs, tape drives and and other media.<br />
** Can verify backups.<br />
|http://www.mondorescue.org/|{{AUR|mondo}}}}<br />
<br />
== Versioning systems ==<br />
These are traditionally used for keeping track of software development; but if you want to have a simple way to manage your config files in one directory, it might be a good solution.<br />
<br />
=== Version control systems ===<br />
{{Wikipedia|Comparison of revision control software}}.<br />
<br />
* {{App|[[Git]]|A distributed revision control and source code management system with an emphasis on speed.<br />
** Very easy creation, merging, and deletion of branches.<br />
** Nearly all operations are performed locally, giving it a huge speed advantage on centralized systems.<br />
** Has a "staging area" or "index", this is an intermediate area where commits can be formatted and reviewed before completing the commit.<br />
** Does not handle binary files very well.<br />
|http://git-scm.com/|{{Pkg|git}}}}<br />
<br />
* {{App|[[Subversion]]|A full-featured centralized version control system originally designed to be a better CVS.<br />
** Renamed/copied/moved/removed files retain full revision history.<br />
** Native support for binary files, with space-efficient binary-diff storage.<br />
** Costs proportional to change size, not to data size.<br />
** Allows arbitrary metadata ("properties") to be attached to any file or directory. <br />
|http://subversion.apache.org/|{{Pkg|subversion}}}}<br />
<br />
* {{App|[[Mercurial]]|A distributed version control system written in Python and similar in many ways to Git.<br />
** Platform independent.<br />
** Support for [http://mercurial.selenic.com/wiki/UsingExtensions extensions].<br />
** A set of commands consistent with Subversion.<br />
** Supports tags.<br />
|http://mercurial.selenic.com/|{{Pkg|mercurial}}}}<br />
<br />
* {{App|[[Wikipedia:Bazaar (software)|Bazaar]]|A distributed version control system that helps you track project history over time and to collaborate easily with others.<br />
** Similar commands to Subversion.<br />
** Supports working with or without a central server.<br />
** Support for working with some other revision control systems<br />
** Complete Unicode support.<br />
|http://bazaar.canonical.com/en/|{{Pkg|bzr}}}}<br />
<br />
* {{App|[[Wikipedia:Darcs|Darcs]]|A distributed revision control system that was designed to replace traditional, centralized source control systems such as CVS and Subversion.<br />
** Offline mode.<br />
** Easy branching and merging.<br />
** Written in Haskell.<br />
** Not very fast.<br />
|http://darcs.net/|{{AUR|darcs}}}}<br />
<br />
=== VCS-based backups ===<br />
<br />
* {{App|Gibak|A backup system based on [[Git]].<br />
** Supports binary diffs.<br />
** Uses all of Git's features (such as {{ic|.gitignore}} for filtering files).<br />
** Uses Git's hook system to save information that Git does not (permissions, mtime, empty directories, etc).<br />
|https://github.com/pangloss/gibak|{{AUR|gibak}}}}<br />
* {{App|bup|A fledgling Git-based backup solution written in Python and C.<br />
** Uses a rolling checksum algorithm (similar to rsync) to split large files into chunks.<br />
** Can back up directly to a remote bup server.<br />
** It has an improved index formats also allow you to track far more files.<br />
|https://github.com/apenwarr/bup|{{AUR|bup}}}}<br />
* {{App|ColdStorage|Another backup tool using Git at its core, written in [[Qt]].|http://gitorious.org/coldstorage|{{AUR|coldstorage-git}}}}<br />
<br />
== External Resources ==<br />
* [http://www.halfgaar.net/backing-up-unix Backing up Linux and other Unix(-like) systems]<br />
* [http://www.askapache.com/security/mirror-using-rsync-ssh.html Mirroring an Entire Site using Rsync over SSH]</div>Dispater124https://wiki.archlinux.org/index.php?title=Synchronization_and_backup_programs&diff=221829Synchronization and backup programs2012-09-07T03:52:33Z<p>Dispater124: added feature list to backuppc</p>
<hr />
<div>[[Category:Data compression and archiving]]<br />
[[Category:System recovery]]<br />
[[ru:Backup Programs]]<br />
This wiki page contains information about various backup programs. It's a good idea to ''have'' regular backups of important data, most notably configuration files ({{Ic|/etc/*}}) and the local pacman database (usually {{Ic|/var/lib/pacman/local/*}}).<br />
<br />
== Introduction ==<br />
Before you start trying various programs out, try to think about your needs, e.g. consider the following questions:<br />
* What backup medium do I have available? (CD, DVD, remote server, external hard drive, etc.)<br />
* How often do I plan to backup? (daily, weekly, monthly, etc.)<br />
* What features do I expect from the backup solution? (compression, encryption, handles renames, etc.)<br />
* How do I plan to restore backups if needed?<br />
<br />
== Incremental backups ==<br />
Applications that can do incremental backups remember and take into account what data has been backed up during the last run and eliminate the need to have duplicates of unchanged data. Restoring the data to a certain point in time would require locating the last full backup and all the incremental backups from then to the moment when it is supposed to be restored. This sort of backup is useful for those who do it very often.<br />
<br />
=== Rsync-type backups ===<br />
The main characteristic of this type of backups is that they maintain a copy of the directory you want to keep a backup of, in a traditional "mirror" fashion.<br />
<br />
Certain rsync-type packages also do snapshot backups by storing files which describe how the contents of files and folders changed from the last backup (so-called 'diffs'). Hence, they are inherently incremental, but usually they do not have compression or encryption. On the other hand, a working copy of everything is immediately available, no decompression/decryption needed. A downside to rsync-type programs is that they cannot be easily burned and restored from a CD or DVD.<br />
<br />
==== Console ====<br />
* {{App|[[rsync]]|A file transfer program to keep remote files in sync.<br />
** rsync almost always makes a mirror of the source.<br />
** Impossible to restore a full backup before the most recent backup (but you can use --backup to keep old versions of the files).<br />
** Standard install on all distros.<br />
** Can run over SSH (port 22) or native rsync protocol (port 873).<br />
** Win32 version available.<br />
|http://rsync.samba.org/|{{Pkg|rsync}}}}<br />
<br />
* {{App|[[Wikipedia:Rsync#Variations|rdiff-backup]]|A utility for local/remote mirroring and incremental backups.<br />
** Stores the most recent backup as regular files.<br />
** To revert to older versions, you apply the diff files to recreate the older versions.<br />
** It is granularly incremental (delta backup), it only stores changes to a file; will not create a new copy of a file upon change.<br />
** Win32 version available.<br />
|http://www.nongnu.org/rdiff-backup/|{{Pkg|rdiff-backup}}}}<br />
<br />
* {{App|rsnapshot|A remote filesystem snapshot utility.<br />
** Does not store diffs, instead it copies entire files if they have changed.<br />
** Creates hard links between a series of backed-up trees (snapshots).<br />
** It is differential in that the size of the backup is only the original backup size plus the size of all files that have changed since the last backup.<br />
** Destination filesystem must support hard links.<br />
** Win32 version available.<br />
|http://www.rsnapshot.org/|{{Pkg|rsnapshot}}}}<br />
<br />
* {{App|SafeKeep|A client/server backup system which uses rdiff-backup.<br />
** Integrates with Linux LVM and databases to create consistent backups.<br />
** Bandwidth throttling.<br />
|http://safekeep.sourceforge.net/|{{AUR|safekeep}}}}<br />
<br />
* {{App|Link-Backup|A tool similar to rsync based scripts, but which does not use rsync.<br />
** Creates hard links between a series of backed-up trees (snapshots).<br />
** Intelligently handles renames, moves, and duplicate files without additional storage or transfer.<br />
** The backup directory contains {{ic|.catalog}}, a catalog of all unique file instances; backup trees hard-link to this catalog.<br />
** Transfer occurs over standard I/O locally or remotely between a client and server instance of this script.<br />
** It copies itself to the server; it does not need to be installed on the server.<br />
** Requires SSH for remote backups.<br />
** It resumes stopped backups; it can even be told to run for an arbitrary number of minutes.<br />
|http://www.scottlu.com/Content/Link-Backup.html|{{AUR|link-backup}}}}<br />
<br />
* {{App|[[Wikipedia:Unison|Unison]]|A program that synchronizes files between two machines over network (LAN or Inet) using a smart diff method + rsync. Allows the user to interactively choose which changes to push, pull, or merge.|http://www.cis.upenn.edu/~bcpierce/unison/|{{Pkg|unison}}}}<br />
<br />
* {{App|oldtime|A highly customizable and configurable backup & restore system.|https://github.com/GutenYe/oldtime|}}}<br />
<br />
==== Graphical ====<br />
* {{App|Back In Time|A simple backup tool for Linux inspired by the [[Wikipedia:FlyBack|FlyBack]] and [https://wiki.ubuntu.com/TimeVault/ TimeVault] projects.<br />
** Creates hard links between a series of backed-up trees (snapshots).<br />
** Really is just a front-end to {{ic|rsync}}, {{ic|diff}}, {{ic|cp}}.<br />
** A new snapshot is created only if something changed since the last snapshot.<br />
|http://backintime.le-web.org/|{{AUR|backintime}}}}<br />
<br />
* {{App|[[Wikipedia:FlyBack|FlyBack]]|A clone of Apple's [[Wikipedia:Time Machine (Mac OS)|Time Machine]], a backup utility for Mac OS X.|http://www.flyback-project.org/|{{AUR|flyback}}}}<br />
<br />
* {{App|[[Wikipedia:Areca Backup|Areca Backup]]|An easy to use and reliable backup solution for Linux and Windows.<br />
** Written in Java.<br />
** Primarily archive-based (zip), but will do file-based backup as well.<br />
** Delta backup supported (stores only changes).<br />
|http://areca.sourceforge.net/|{{AUR|areca}}}}<br />
<br />
* {{App|[[Wikipedia:LuckyBackup|luckyBackup]]|An easy program to backup and sync your files.<br />
** It is written in Qt and C++.<br />
** It has sync, backup (with include and exclude options) and restore capabilities.<br />
** It can do remote connection backups, scheduled backups.<br />
** A command line mode.<br />
|http://luckybackup.sourceforge.net/index.html|{{AUR|luckybackup}}}}<br />
<br />
* {{App|syncBackup|A front-end for rsync that provides a fast and extraordinary copying tool. It offers the most common options that control its behavior and permit very flexible specification of the set of files to be copied.<br />
|http://www.darhon.com/syncbackup|{{AUR|syncbackup}}}}<br />
<br />
* {{App|[[BackupPC]]|A high-performance, enterprise-grade system for backing up Unix, Linux, Windows, and Mac OS X desktops and laptops to a remote server.<br />
** Deduplication: Identical files across multiple backups of the same or different PCs are stored only once resulting in substantial savings in disk storage and disk I/O.<br />
** Optional compression support further reducing disk storage.<br />
** No client-side software is needed.<br />
** Simple but powerful web-based UI.<br />
|http://backuppc.sourceforge.net/index.html|{{Pkg|BackupPC}}}}<br />
<br />
=== Other backups ===<br />
Most other backup applications tend to create (big) archive files and (of course) keep track of what's been archived. Creating {{ic|.tar.bz2}} or {{ic|.tar.gz}} archives has the advantage that you can extract the backups with just tar/bzip2/gzip, so you do not need to have the backup program around.<br />
<br />
==== Console ====<br />
* {{App|Backup Manager|A command line backup tool for Linux, designed to help you make daily archives of your file system.<br />
** Manual and automatic (via [[cron]]) backup.<br />
** Backups can be stored in files, MySQL or SVN repositories.<br />
** Specify multiple targets to backup at once (/etc, /home, etc.) with blacklisting of files or sub-directories.<br />
** Full or Incremental backup.<br />
** Backup to CD/DVD, LAN or a remote server via FTP, SSH, rsync or Amazon S3.<br />
** Compression and encryption.<br />
** Can run different instances with different configuration files concurrently.<br />
|http://www.backup-manager.org/|{{AUR|backup-manager}}}}<br />
<br />
* {{App|Arch Backup|A trivial backup scripts with simple configuration.<br />
** Configurable compression method.<br />
** Multiple backup targets.<br />
|http://code.google.com/p/archlinux-stuff/|{{Pkg|arch-backup}}}}<br />
<br />
* {{App|[[Backup with hdup|hdup]]|A very simple command line backup tool.<br />
** Creates tar.gz or tar.bz2 archives.<br />
** Supports gpg encryption.<br />
** Supports pushing over SSH.<br />
** Multiple backup targets.<br />
|http://miek.nl/projects/hdup2/|{{AUR|hdup}}}}<br />
<br />
* {{App|rdup|A platform for backups that provides scripts to facilitate backups and delegates the encryption, compression, transfer and packaging to other utilities in a true Unix-way.<br />
** Creates tar.gz archives or rsync-type copy.<br />
** Encryption (gpg, blowfish and others); also applies for rsync-type copy.<br />
** Compression (also for rsync-type copy).<br />
|http://miek.nl/projects/rdup|{{AUR|rdup}}}}<br />
<br />
* {{App|[[Duplicity]]|A simple command-line utility which allows encrypted compressed incremental backup to nearly any storage.<br />
** Supports gpg encryption and signing.<br />
** Supports gzip compression.<br />
** Supports full or incremental backups, incremental backup stores only difference between new and old file.<br />
** Supports pushing over FTP, SSH, rsync, WebDAV, WebDAVs, HSi and Amazon S3 or local filesystem.<br />
|http://www.nongnu.org/duplicity/|{{Pkg|duplicity}}}}<br />
<br />
* {{App|[[Wikipedia:DAR (Disk Archiver)|DAR]]|A full-featured command-line backup tool, short for Disk ARchive.<br />
** It uses its own format for archives (so you need to have it around when you want to restore).<br />
** Supports splitting backups into more files by size.<br />
** Makefile-type config files, some custom scripts are available along with it.<br />
** Supports basic encryption.<br />
** Automatic backup using [[cron]] is possible with {{AUR|sarab}}.<br />
|http://dar.linux.free.fr/|{{AUR|dar}} {{AUR|kdar}} (fontend)}}<br />
<br />
* {{App|Manent|An algorithmically strong backup and archival program.<br />
** Efficient backup to anything that looks like a storage.<br />
** Works well over a slow and unreliable network.<br />
** Offers online access to the contents of the backup.<br />
** Backed up storage is completely encrypted.<br />
** Several computers can use the same storage for backup, automatically sharing data.<br />
** Not reliant on timestamps of the remote system to detect changes.<br />
** Cross-platform support for Unicode file names.<br />
|http://code.google.com/p/manent/|{{AUR|manent}}}}<br />
<br />
==== Graphical ====<br />
* {{App|Backerupper|A simple program for backing up selected directories over a local network. Its main intended purpose is backing up a user's personal data.<br />
** Creates {{ic|.tar.gz}} archives.<br />
** Configurable backup frequency, backup time and max copies.<br />
|http://sourceforge.net/projects/backerupper/|{{AUR|backerupper}}}}<br />
<br />
* {{App|[[Duplicity|Déjà Dup]]|A simple GTK+ backup program. It hides the complexity of doing backups the 'right way' (encrypted, off-site, and regular) and uses duplicity as the backend.<br />
** Automatic, timed backup configurable in GUI.<br />
** Restore wizard.<br />
** Integrated into the Nautilus file manager.<br />
** Inherits several features of duplicity.<br />
|https://launchpad.net/deja-dup|{{Pkg|deja-dup|}}}}<br />
<br />
* {{App|Synkron|A folder synchronization tool.<br />
** Syncs multiple folders.<br />
** Can exclude files from sync based on wildcards.<br />
** Restores files.<br />
** Cross-platform support.<br />
|http://synkron.sourceforge.net/|{{AUR|synkron}}}}<br />
<br />
== Cloud backups ==<br />
* {{App|[[Wikipedia:CrashPlan|CrashPlan]]|An online/offsite backup solution.<br />
** Unlimited online space for very reasonable pricing.<br />
** Automatic and incremental backups to multiple destinations.<br />
** Intuitive GUI.<br />
** Offers encryption and de-duplication.<br />
** Software is generally free.<br />
|http://www.crashplan.com/|{{AUR|crashplan}}}}<br />
<br />
* {{App|[[Dropbox]]|A popular file-sharing service.<br />
** A daemon monitors a specified directory, and uploads incremental changes to dropbox.com. <br />
** Changes automatically show up on your other computers. <br />
** Includes file sharing and a public directory. <br />
** You can recover deleted files. <br />
** Community written add-ons. <br />
** Free accounts have 2GB storage.<br />
|http://www.getdropbox.com|{{AUR|nautilus-dropbox}} &ndash; extension for [[Nautilus]], {{AUR|dropbox}} &ndash; without Gnome dependencies}}<br />
<br />
* {{App|[[Wikipedia:Jungle Disk|Jungle Disk]]|An online backup tool that stores its data in Amazon S3 or Rackspace Cloud Files.<br />
** A Nautilus extension.<br />
** Only paid plans available.<br />
|http://www.jungledisk.com/|{{AUR|nautilus-jungledisk}}}}<br />
<br />
* {{App|Tarsnap|A secure online backup service for BSD, Linux, OS X, Solaris and Windows (through Cygwin).<br />
** Compressed encrypted backups to Amazon S3 Servers.<br />
** Automate via [[cron]].<br />
** Incremental backups.<br />
** Backup any files or directories.<br />
** Command line only client.<br />
** Pay only for usage (bandwidth and storage). <br />
|http://www.tarsnap.com|{{Pkg|tarsnap}}}}<br />
<br />
* {{App|[[Wikipedia:Wuala|Wuala]]|A secure online storage, file synchronization, versioning and backup service.<br />
** Closed source, free and paid version available.<br />
** Free account holds 5GB.<br />
** Includes file sharing and a public directory.<br />
** Incremental backup and sync are both supported.<br />
** Social networking features.<br />
** All files in the cloud are first encrypted locally.<br />
|http://www.wuala.com/|{{AUR|wuala}}, {{AUR|wuala-daemon}} &ndash; to run as daemon}}<br />
<br />
* {{App|[[Wikipedia:SpiderOak|SpiderOak]]|An online backup tool for Windows, Mac and Linux users to back up, share, sync, access and store[1] their data.<br />
** Free and paid version available.<br />
** Free account holds 2GB.<br />
** Includes file sharing and a public directory.<br />
** Incremental backup and sync are both supported.<br />
|https://spideroak.com/|{{AUR|spideroak}}}}<br />
<br />
* {{App|[[Ubuntu One]]|An online storage service with sync and sharing across platforms.<br />
** Free and payed versions available.<br />
** Free account with 5GB.<br />
** Mobile access.<br />
** Music streaming.<br />
|https://one.ubuntu.com/services/|{{Pkg|ubuntuone-client}}}}<br />
<br />
* {{App|Packrat|A simple, modular backup system that uses [[Wikipedia:DAR (Disk Archiver)|DAR]] to take full or incremental backups of files and can store them locally, on a remote system via SSH, or on Amazon S3.|http://www.zeroflux.org/projects|{{AUR|packrat}}}}<br />
<br />
== Non-incremental backups ==<br />
Another type of backups are those used in case of a disaster. These include application that allow easy backup of entire filesystems and recovery in case of failure, usually in the form of a Live CD or USB drive. The contains complete system images from one or more specific points in time and are frequently used by to record known good configurations.<br />
<br />
* {{App|Q7Z|P7Zip GUI for Linux, which attempts to simplify data compression and backup. It can create the following archive types: 7z, BZip2, Zip, GZip, Tar.<br />
** Updates existing archives quickly.<br />
** Backup multiple folders to a storage location.<br />
** Create or extract protected archives.<br />
** Lessen effort by using archiving profiles and lists.<br />
|http://k7z.sourceforge.net/|{{AUR|q7z}}}}<br />
<br />
* {{App|[[Partclone]]|A tool that can be used to back up and restore a partition while considering only used blocks.<br />
** Supports ext2, ext3, hfs+, reiser3.5, reiser3.6, reiser4, ext4 and btrfs.<br />
** Supports compression.<br />
|http://partclone.nchc.org.tw/trac/|{{AUR|partclone}}}}<br />
<br />
* {{App|[[Wikipedia:Redo Backup and Recovery|Redo Backup and Recovery]]|A backup and disaster recovery application that runs from a bootable Linux CD image.<br />
** Is capable of bare-metal backup and recovery of disk partitions.<br />
** Uses [http://www.xpud.org/ xPUD] and [[Partclone]] for the backend.<br />
|http://www.redobackup.org/|}}<br />
<br />
* {{App|[[Wikipedia:Clonezilla|Clonezilla]]|A disaster recovery, disk cloning, disk imaging and deployment solution.<br />
** Boots from live CD, USB flash drive, or PXE server.<br />
** Supports ext2, ext3, ext4, reiserfs, reiser4, xfs, jfs, btrfs FAT32, NTFS, HFS+ and others.<br />
** Uses Partclone (default), Partimage (optional), ntfsclone (optional), or dd to image or clone a partition.<br />
** Multicasting server to restore to many machines at once.<br />
|http://clonezilla.org/|{{AUR|clonezilla}}}}<br />
<br />
* {{App|[[Wikipedia:Partimage|Partimage]]|A disk cloning utility for Linux/UNIX environments.<br />
** Has a Live CD.<br />
** Supports the most popular filesystems on Linux, Windows and Mac OS.<br />
** Compression.<br />
** Saving to multiple CDs or DVDs or across a network using Samba/NFS.<br />
|http://www.partimage.org/Main_Page|{{Pkg|partimage}}}}<br />
<br />
* {{App|FSArchiver|A safe and flexible file-system backup and deployment tool<br />
** Support for basic file attributes (permissions, owner, ...).<br />
** Support for multiple file-systems per archive.<br />
** Support for extended attributes (they are used by SELinux).<br />
** Support the basic file-system attributes (label, uuid, block-size) for all linux file-systems.<br />
** Support for [http://www.fsarchiver.org/Cloning-ntfs ntfs filesystems] (ability to create flexible clones of a Windows partitions).<br />
** Checksumming of everything which is written in the archive (headers, data blocks, whole files).<br />
** Ability to restore an archive which is corrupt (it will just skip the current file).<br />
** Multi-threaded lzo, gzip, bzip2, lzma compression.<br />
** Support for splitting large archives into several files with a fixed maximum size.<br />
** Encryption of the archive using a password. Based on blowfish from libcrypto from [[OpenSSL]].<br />
** Support backup of a mounted root filesystem (-A option).<br />
|http://www.fsarchiver.org/Main_Page|{{Pkg|fsarchiver}}}}<br />
<br />
* {{App|[[Wikipedia:Mondo Rescue|Mondo Rescue]]|A disaster recovery solution to create backup media that can be used to redeploy the damaged system.<br />
** Image-based backups, supporting Linux/Windows.<br />
** Compression rate is adjustable.<br />
** Can backup live systems (without having to halt it).<br />
** Can split image over many files.<br />
** Supports booting to a Live CD to perform a full restore.<br />
** Can backup/restore over NFS, from CDs, tape drives and and other media.<br />
** Can verify backups.<br />
|http://www.mondorescue.org/|{{AUR|mondo}}}}<br />
<br />
== Versioning systems ==<br />
These are traditionally used for keeping track of software development; but if you want to have a simple way to manage your config files in one directory, it might be a good solution.<br />
<br />
=== Version control systems ===<br />
{{Wikipedia|Comparison of revision control software}}.<br />
<br />
* {{App|[[Git]]|A distributed revision control and source code management system with an emphasis on speed.<br />
** Very easy creation, merging, and deletion of branches.<br />
** Nearly all operations are performed locally, giving it a huge speed advantage on centralized systems.<br />
** Has a "staging area" or "index", this is an intermediate area where commits can be formatted and reviewed before completing the commit.<br />
** Does not handle binary files very well.<br />
|http://git-scm.com/|{{Pkg|git}}}}<br />
<br />
* {{App|[[Subversion]]|A full-featured centralized version control system originally designed to be a better CVS.<br />
** Renamed/copied/moved/removed files retain full revision history.<br />
** Native support for binary files, with space-efficient binary-diff storage.<br />
** Costs proportional to change size, not to data size.<br />
** Allows arbitrary metadata ("properties") to be attached to any file or directory. <br />
|http://subversion.apache.org/|{{Pkg|subversion}}}}<br />
<br />
* {{App|[[Mercurial]]|A distributed version control system written in Python and similar in many ways to Git.<br />
** Platform independent.<br />
** Support for [http://mercurial.selenic.com/wiki/UsingExtensions extensions].<br />
** A set of commands consistent with Subversion.<br />
** Supports tags.<br />
|http://mercurial.selenic.com/|{{Pkg|mercurial}}}}<br />
<br />
* {{App|[[Wikipedia:Bazaar (software)|Bazaar]]|A distributed version control system that helps you track project history over time and to collaborate easily with others.<br />
** Similar commands to Subversion.<br />
** Supports working with or without a central server.<br />
** Support for working with some other revision control systems<br />
** Complete Unicode support.<br />
|http://bazaar.canonical.com/en/|{{Pkg|bzr}}}}<br />
<br />
* {{App|[[Wikipedia:Darcs|Darcs]]|A distributed revision control system that was designed to replace traditional, centralized source control systems such as CVS and Subversion.<br />
** Offline mode.<br />
** Easy branching and merging.<br />
** Written in Haskell.<br />
** Not very fast.<br />
|http://darcs.net/|{{AUR|darcs}}}}<br />
<br />
=== VCS-based backups ===<br />
<br />
* {{App|Gibak|A backup system based on [[Git]].<br />
** Supports binary diffs.<br />
** Uses all of Git's features (such as {{ic|.gitignore}} for filtering files).<br />
** Uses Git's hook system to save information that Git does not (permissions, mtime, empty directories, etc).<br />
|https://github.com/pangloss/gibak|{{AUR|gibak}}}}<br />
* {{App|bup|A fledgling Git-based backup solution written in Python and C.<br />
** Uses a rolling checksum algorithm (similar to rsync) to split large files into chunks.<br />
** Can back up directly to a remote bup server.<br />
** It has an improved index formats also allow you to track far more files.<br />
|https://github.com/apenwarr/bup|{{AUR|bup}}}}<br />
* {{App|ColdStorage|Another backup tool using Git at its core, written in [[Qt]].|http://gitorious.org/coldstorage|{{AUR|coldstorage-git}}}}<br />
<br />
== External Resources ==<br />
* [http://www.halfgaar.net/backing-up-unix Backing up Linux and other Unix(-like) systems]<br />
* [http://www.askapache.com/security/mirror-using-rsync-ssh.html Mirroring an Entire Site using Rsync over SSH]</div>Dispater124https://wiki.archlinux.org/index.php?title=BackupPC&diff=214868BackupPC2012-07-26T04:55:31Z<p>Dispater124: </p>
<hr />
<div> [[Category:System recovery]]<br />
'''BackupPC''' is a high-performance, enterprise-grade system for backing up Unix, Linux, WinXX, and MacOSX PCs, desktops and laptops to a server's disk. BackupPC is highly configurable and easy to install and maintain.<br />
<br />
Given the ever decreasing cost of disks and raid systems, it is now practical and cost effective to backup a large number of machines onto a server's local disk or network storage. For some sites this might be the complete backup solution. For other sites additional permanent archives could be created by periodically backing up the server to tape.<br />
<br />
==Installation==<br />
<br />
BackupPC is part of the official repos. You can simply install it with pacman:<br />
# pacman -S backuppc<br />
<br />
=== Additional Packages ===<br />
Install rsync & perl-file-rsyncp if you want to use [[rsync]] as a transport<br />
<br />
===Start BackupPC===<br />
To manually start BackupPC issue this command.<br />
# /etc/rc.d/backuppc start<br />
<br />
===Make BackupPC run at startup===<br />
To make BackupPC load at startup edit /etc/rc.conf and add it to DAEMONS.<br />
# nano -w /etc/rc.conf<br />
DAEMONS=(... backuppc ...)<br />
<br />
==Apache Configuration==<br />
BackupPC has a web interface that allows you to easily control it. You can access it using Apache and mod_perl but other webservers like lighttpd works too. <br />
<br />
===Install Apache and mod_perl===<br />
# pacman -S apache mod_perl<br />
<br />
===Edit Apache configuration===<br />
Edit the Apache configuration file...<br />
# nano -w /etc/httpd/conf/httpd.conf<br />
<br />
...to load mod_perl, tell Apache to run as user backuppc and to include /etc/httpd/conf/extra/backuppc.conf<br />
<br />
LoadModule perl_module modules/mod_perl.so<br />
User backuppc<br />
Group backuppc<br />
Include conf/extra/backuppc.conf<br />
<br />
Edit /etc/backuppc/config.pl. Set administrator name<br />
$Conf{CgiAdminUsers} = 'admin'; <br />
Next, we need to add a users file and set the admin password:<br />
# htpasswd -c /etc/backuppc/backuppc.users admin<br />
<br />
{{Note|The BackupPC-Webfrontend is initially configured, that you can only access it from the localhost. If you want to access it from all machines in your network, you have to edit /etc/httpd/conf/extra/backuppc.conf:}}<br />
# nano -w /etc/httpd/conf/extra/backuppc.conf<br />
Edit the line<br />
allow from 127.0.0.1<br />
to<br />
allow from 127.0.0.1 192.168.0<br />
where you have to replace 192.168.0 to your corresponding IP-Adresses you want to gain access from.<br />
<br />
===Starting BackupPC and Apache manually===<br />
# /etc/rc.d/backuppc start<br />
# /etc/rc.d/httpd start<br />
<br />
===Starting both on boot===<br />
Add the BackupPC and the Apache daemon to rc.conf<br />
# nano -w /etc/rc.conf<br />
DAEMONS=(... backuppc httpd ...)<br />
<br />
==Alternative lighttpd Configuration==<br />
/etc/lighttpd/lighttpd.conf<br />
<br />
server.port = 81<br />
server.username = "backuppc"<br />
server.groupname = "backuppc"<br />
server.document-root = "/srv/http"<br />
server.errorlog = "/var/log/lighttpd/error.log"<br />
dir-listing.activate = "enable"<br />
index-file.names = ( "index.html", "index.php", "index.cgi" )<br />
mimetype.assign = ( ".html" => "text/html", ".txt" => "text/plain", ".jpg" => "image/jpeg", ".png" => "image/png", "" => "application/octet-stream" )<br />
<br />
server.modules = ("mod_alias", "mod_cgi", "mod_auth", "mod_access" )<br />
<br />
alias.url = ( "/BackupPC_Admin" => "/usr/share/backuppc/cgi-bin/BackupPC_Admin" )<br />
alias.url += ( "/backuppc" => "/usr/share/backuppc/html" )<br />
<br />
cgi.assign += ( ".cgi" => "/usr/bin/perl" )<br />
cgi.assign += ( "BackupPC_Admin" => "/usr/bin/perl" )<br />
<br />
auth.backend = "plain"<br />
auth.backend.plain.userfile = "/etc/lighttpd/passwd"<br />
auth.require = ( "/BackupPC_Admin" => ( "method" => "basic", "realm" => "BackupPC", "require" => "user=admin" ) )<br />
<br />
/etc/lighttpd/passwd<br />
admin:yourpasswordgoeshere<br />
<br />
<br />
==Accessing the admin page==<br />
Browse to http://localhost/BackupPC_Admin respectively http://YOUR_BACKUPPC_SERVER_IP/BackupPC_Admin<br />
<br />
==Resources==<br />
* [http://backuppc.sourceforge.net/index.html BackupPC Home Page]<br />
* [http://backuppc.sourceforge.net/faq/BackupPC.html BackupPC Documentation]</div>Dispater124https://wiki.archlinux.org/index.php?title=BackupPC&diff=214867BackupPC2012-07-26T04:54:36Z<p>Dispater124: added group info and another directory alias to the lighttpd conf</p>
<hr />
<div> [[Category:System recovery]]<br />
'''BackupPC''' is a high-performance, enterprise-grade system for backing up Unix, Linux, WinXX, and MacOSX PCs, desktops and laptops to a server's disk. BackupPC is highly configurable and easy to install and maintain.<br />
<br />
Given the ever decreasing cost of disks and raid systems, it is now practical and cost effective to backup a large number of machines onto a server's local disk or network storage. For some sites this might be the complete backup solution. For other sites additional permanent archives could be created by periodically backing up the server to tape.<br />
<br />
==Installation==<br />
<br />
BackupPC is part of the official repos. You can simply install it with pacman:<br />
# pacman -S backuppc<br />
<br />
=== Additional Packages ===<br />
Install rsync & perl-file-rsyncp if you want to use [[rsync]] as a transport<br />
<br />
===Start BackupPC===<br />
To manually start BackupPC issue this command.<br />
# /etc/rc.d/backuppc start<br />
<br />
===Make BackupPC run at startup===<br />
To make BackupPC load at startup edit /etc/rc.conf and add it to DAEMONS.<br />
# nano -w /etc/rc.conf<br />
DAEMONS=(... backuppc ...)<br />
<br />
==Apache Configuration==<br />
BackupPC has a web interface that allows you to easily control it. You can access it using Apache and mod_perl but other webservers like lighttpd works too. <br />
<br />
===Install Apache and mod_perl===<br />
# pacman -S apache mod_perl<br />
<br />
===Edit Apache configuration===<br />
Edit the Apache configuration file...<br />
# nano -w /etc/httpd/conf/httpd.conf<br />
<br />
...to load mod_perl, tell Apache to run as user backuppc and to include /etc/httpd/conf/extra/backuppc.conf<br />
<br />
LoadModule perl_module modules/mod_perl.so<br />
User backuppc<br />
Group backuppc<br />
Include conf/extra/backuppc.conf<br />
<br />
Edit /etc/backuppc/config.pl. Set administrator name<br />
$Conf{CgiAdminUsers} = 'admin'; <br />
Next, we need to add a users file and set the admin password:<br />
# htpasswd -c /etc/backuppc/backuppc.users admin<br />
<br />
{{Note|The BackupPC-Webfrontend is initially configured, that you can only access it from the localhost. If you want to access it from all machines in your network, you have to edit /etc/httpd/conf/extra/backuppc.conf:}}<br />
# nano -w /etc/httpd/conf/extra/backuppc.conf<br />
Edit the line<br />
allow from 127.0.0.1<br />
to<br />
allow from 127.0.0.1 192.168.0<br />
where you have to replace 192.168.0 to your corresponding IP-Adresses you want to gain access from.<br />
<br />
===Starting BackupPC and Apache manually===<br />
# /etc/rc.d/backuppc start<br />
# /etc/rc.d/httpd start<br />
<br />
===Starting both on boot===<br />
Add the BackupPC and the Apache daemon to rc.conf<br />
# nano -w /etc/rc.conf<br />
DAEMONS=(... backuppc httpd ...)<br />
<br />
==Alternative lighttpd Configuration==<br />
/etc/lighttpd/lighttpd.conf<br />
<br />
server.port = 81<br />
server.username = "backuppc"<br />
server.groupname = "backuppc"<br />
server.document-root = "/srv/http"<br />
server.errorlog = "/var/log/lighttpd/error.log"<br />
dir-listing.activate = "enable"<br />
index-file.names = ( "index.html", "index.php", "index.cgi" )<br />
mimetype.assign = ( ".html" => "text/html", ".txt" => "text/plain", ".jpg" => "image/jpeg", ".png" => "image/png", "" => "application/octet-stream" )<br />
<br />
server.modules = ("mod_alias", "mod_cgi", "mod_auth", "mod_access" )<br />
<br />
alias.url = ( "/BackupPC_Admin" => "/usr/share/backuppc/cgi-bin/BackupPC_Admin" )<br />
alias.url += ( "/backuppc" => "/usr/share/backuppc/html" )<br />
<br />
cgi.assign += ( ".cgi" => "/usr/bin/perl" )<br />
cgi.assign += ( "BackupPC_Admin" => "/usr/bin/perl" )<br />
<br />
auth.backend = "plain"<br />
auth.backend.plain.userfile = "/etc/lighttpd/passwd"<br />
auth.require = ( "/BackupPC_Admin" => ( "method" => "basic", "realm" => "BackupPC", "require" => "user=admin" ) )<br />
<br />
/etc/lighttpd/passwd<br />
admin:yourpasswordgoeshere<br />
<br />
<br />
==Accessing the admin page==<br />
Browse to http://localhost/BackupPC_Admin respectively http://YOUR_BACKUPPC_SERVER_IP/BackupPC_Admin<br />
<br />
==Resources==<br />
* [http://backuppc.sourceforge.net/index.html BackupPC Home Page]<br />
* [http://backuppc.sourceforge.net/faq/BackupPC.html BackupPC Documentation]</div>Dispater124https://wiki.archlinux.org/index.php?title=BackupPC&diff=213128BackupPC2012-07-16T07:14:37Z<p>Dispater124: added link</p>
<hr />
<div> [[Category:System recovery]]<br />
'''BackupPC''' is a high-performance, enterprise-grade system for backing up Unix, Linux, WinXX, and MacOSX PCs, desktops and laptops to a server's disk. BackupPC is highly configurable and easy to install and maintain.<br />
<br />
Given the ever decreasing cost of disks and raid systems, it is now practical and cost effective to backup a large number of machines onto a server's local disk or network storage. For some sites this might be the complete backup solution. For other sites additional permanent archives could be created by periodically backing up the server to tape.<br />
<br />
==Installation==<br />
<br />
BackupPC is part of the official repos. You can simply install it with pacman:<br />
# pacman -S backuppc<br />
<br />
=== Additional Packages ===<br />
The following packages are available if you want to<br />
* Use [[rsync]] as a transport: rsync & perl-file-rsyncp<br />
* Use compression: perl-compress-zlib<br />
<br />
<br />
===Start BackupPC===<br />
To manually start BackupPC issue this command.<br />
# /etc/rc.d/backuppc start<br />
<br />
===Make BackupPC run at startup===<br />
To make BackupPC load at startup edit /etc/rc.conf and add it to DAEMONS.<br />
# nano -w /etc/rc.conf<br />
DAEMONS=(... backuppc ...)<br />
<br />
==Apache Configuration==<br />
BackupPC has a web interface that allows you to easily control it. You can access it using Apache and mod_perl but other webservers like lighttpd works too. <br />
<br />
===Install Apache and mod_perl===<br />
# pacman -S apache mod_perl<br />
<br />
===Edit Apache configuration===<br />
Edit the Apache configuration file...<br />
# nano -w /etc/httpd/conf/httpd.conf<br />
<br />
...to load mod_perl, tell Apache to run as user backuppc and to include /etc/httpd/conf/extra/backuppc.conf<br />
<br />
LoadModule perl_module modules/mod_perl.so<br />
User backuppc<br />
Include conf/extra/backuppc.conf<br />
<br />
Edit /etc/BackupPC/config.pl. Set administrator name<br />
$Conf{CgiAdminUsers} = 'admin'; <br />
Next, we need to add a users file and set the admin password:<br />
# htpasswd -c /etc/backuppc/backuppc.users admin<br />
<br />
{{Note|The BackupPC-Webfrontend is initially configured, that you can only access it from the localhost. If you want to access it from all machines in your network, you have to edit /etc/httpd/conf/extra/backuppc.conf:}}<br />
# nano -w /etc/httpd/conf/extra/backuppc.conf<br />
Edit the line<br />
allow from 127.0.0.1<br />
to<br />
allow from 127.0.0.1 192.168.0<br />
where you have to replace 192.168.0 to your corresponding IP-Adresses you want to gain access from.<br />
<br />
===Starting BackupPC and Apache manually===<br />
# /etc/rc.d/backuppc start<br />
# /etc/rc.d/httpd start<br />
<br />
===Starting both on boot===<br />
Add the BackupPC and the Apache daemon to rc.conf<br />
# nano -w /etc/rc.conf<br />
DAEMONS=(... backuppc httpd ...)<br />
<br />
==Alternative lighttpd Configuration==<br />
/etc/lighttpd/lighttpd.conf<br />
<br />
server.port = 81<br />
server.username = "backuppc"<br />
server.groupname = "http"<br />
server.document-root = "/srv/http"<br />
server.errorlog = "/var/log/lighttpd/error.log"<br />
dir-listing.activate = "enable"<br />
index-file.names = ( "index.html", "index.php", "index.cgi" )<br />
mimetype.assign = ( ".html" => "text/html", ".txt" => "text/plain", ".jpg" => "image/jpeg", ".png" => "image/png", "" => "application/octet-stream" )<br />
<br />
server.modules = ("mod_alias", "mod_cgi", "mod_auth", "mod_access" )<br />
<br />
alias.url = ( "/BackupPC_Admin" => "/usr/share/backuppc/cgi-bin/BackupPC_Admin" )<br />
cgi.assign += ( ".cgi" => "/usr/bin/perl" )<br />
cgi.assign += ( "BackupPC_Admin" => "/usr/bin/perl" )<br />
<br />
auth.backend = "plain"<br />
auth.backend.plain.userfile = "/etc/lighttpd/passwd"<br />
auth.require = ( "/BackupPC_Admin" => ( "method" => "basic", "realm" => "BackupPC", "require" => "user=admin" ) )<br />
<br />
/etc/lighttpd/passwd<br />
admin:yourpasswordgoeshere<br />
<br />
<br />
==Accessing the admin page==<br />
Browse to http://localhost/BackupPC_Admin respectively http://YOUR_BACKUPPC_SERVER_IP/BackupPC_Admin<br />
<br />
==Resources==<br />
* [http://backuppc.sourceforge.net/index.html BackupPC Home Page]<br />
* [http://backuppc.sourceforge.net/faq/BackupPC.html BackupPC Documentation]</div>Dispater124https://wiki.archlinux.org/index.php?title=ReadyMedia&diff=213117ReadyMedia2012-07-16T01:37:00Z<p>Dispater124: added link</p>
<hr />
<div>[[Category:Audio/Video]]<br />
[[es:MiniDLNA]]<br />
[https://sourceforge.net/projects/minidlna MiniDLNA] is server software with the aim of being fully compliant with [http://en.wikipedia.org/wiki/Digital_Living_Network_Alliance DLNA]/[http://en.wikipedia.org/wiki/Universal_Plug_and_Play UPnP] clients. The MiniDNLA daemon serves media files (music, pictures, and video) to clients on a network. Example clients include applications such as totem and xbmc, and devices such as portable media players, Smartphones, Televisions, and gaming systems (such as PS3 and Xbox 360).<br />
<br />
MiniDLNA is a simple, lightweight alternative to [[MediaTomb]], but has fewer features. It does not have a web interface for administration and must be configured by editing a text file.<br />
<br />
== Installation ==<br />
<br />
[[pacman|Install]] {{Pkg|minidlna}} from the [[Official Repositories|official repositories]].<br />
<br />
== Configuration ==<br />
<br />
The MiniDLNA daemon can be run as either a global (config:{{ic|/etc/minidlna.conf}}) or per-user instance (config:user-defined), these are the necessary common settings:<br />
<br />
<pre>#network_interface=eth0 # Self-discovers if commented (at times necessary to set)<br />
media_dir=A,/home/user/Music # Use A, P, and V to restrict media 'type' in directory<br />
media_dir=P,/home/user/Pictures<br />
media_dir=V,/home/user/Videos<br />
friendly_name=Media Server # Optional<br />
db_dir=/var/cache/minidlna # Needs to be un-commented<br />
log_dir=/var/log # Needs to be un-commented<br />
inotify=yes # 'no' for less resources, restart required for new media</pre><br />
<br />
=== Global ===<br />
<br />
While not necessary, it is a good idea to also enable MiniDLNA's cache (so the database and album art cache do not need to be re-created on every restart) and logging capabilities. MiniDLNA runs as the '''nobody''' user, so any directory you include will need to be readable by this user. To do so, create the necessary directories and {{ic|chown}} them to {{ic|nobody:nobody}}.<br />
<br />
# mkdir /var/{cache,log}/minidlna<br />
# chown nobody:nobody /var/{cache,log}/minidlna<br />
<br />
MiniDLNA includes an initscript to start it as a global [[Daemon|daemon]]. Be sure to add it to {{ic|rc.conf}} to have it loaded at boot.<br />
<br />
=== Local ===<br />
<br />
Create the necessary files and directories locally and edit the configuration:<br />
<br />
# mkdir -p ~/.minidlna/cache<br />
# cd ~/.minidlna<br />
# cp /etc/minidlna.conf .<br />
# $EDITOR minidlna.conf<br />
<br />
Configure as you would globally above but these definitions need to be defined locally:<br />
<br />
db_dir=/home/$USER/.minidlna/cache<br />
log_dir=/home/$USER/.minidlna<br />
<br />
This is a local daemon script to start and stop MiniDLNA as a regular user:<br />
<br />
{{hc|minidlna-daemon|<pre>#!/bin/bash<br />
# Start and stop the MiniDLNA daemon<br />
<br />
cnf="/home/$USER/.minidlna/minidlna.conf"<br />
pid="/home/$USER/.minidlna/minidlna.pid"<br />
log="/home/$USER/.minidlna/minidlna.log"<br />
<br />
# Required program(s)<br />
req_progs=(minidlna)<br />
for p in ${req_progs[@]}; do<br />
hash "$p" 2>&- || \<br />
{ echo >&2 " Required program \"$p\" not installed."; exit 1; }<br />
done<br />
<br />
dmn_strt () {<br />
# -R will rebuild file database on start (inotify only works when monitoring)<br />
minidlna -R -f "$cnf" -P "$pid" > $log 2>&1 &<br />
}<br />
<br />
dmn_stop () {<br />
if [ "$(pidof minidlna)" ]; then<br />
killall -9 minidlna && sleep 2 && \<br />
echo " Stopped MiniDLNA daemon"<br />
else<br />
echo " MiniDLNA is not running"<br />
fi<br />
}<br />
<br />
case $1 in<br />
start ) # Start daemon<br />
dmn_stop<br />
dmn_strt || { echo " Failure in starting daemon"; exit; }<br />
echo " Started MiniDLNA daemon" ;;<br />
stop ) # Stop daemon<br />
dmn_stop ;;<br />
* ) # Display usage if no parameters given<br />
echo " ${0##*/} <start|stop> - start and stop the MiniDLNA daemon"<br />
esac</pre>}}<br />
<br />
==== Load daemon on Login ====<br />
<br />
A {{ic|.desktop}} file in {{ic|~/.config/autostart}} will do this:<br />
<br />
{{hc|~/.config/autostart/minidlna.desktop|<pre>[Desktop Entry]<br />
Encoding=UTF-8<br />
Type=Application<br />
Name=MiniDLNA<br />
Comment=Server to stream media over network<br />
Exec=/home/$USER/.scripts/minidlna-daemon start<br />
StartupNotify=false<br />
Terminal=false<br />
Hidden=false<br />
X-GNOME-Autostart-enabled=true</pre>}}<br />
<br />
Make the file executable:<br />
<br />
# chmod +x ~/.config/autostart/minidlna.desktop<br />
<br />
==== inotify limits ====<br />
<br />
When MiniDLNA is run as a regular user it does not have the ability to change the kernel's inotify settings these settings will need to added manually. The default number of inotify watches is non-sufficient to have MiniDLNA monitor media file properly, to increase inotify watches do it through {{ic|sysctl}} (100000 should be enough for most uses):<br />
<br />
# sudo sysctl fs.inotify.max_user_watches=100000<br />
<br />
To have it permanently added add to {{ic|/etc/sysctl.conf}}<br />
<br />
# Increase inotify max watchs per user for local minidlna<br />
fs.inotify.max_user_watches = 100000"<br />
<br />
== Other details ==<br />
<br />
Additional details that may need to be considered.<br />
<br />
=== Firewall ===<br />
<br />
If using a firewall the the ssdp (1900/udp) and trivnet1 (8200/tcp) ports will need to be opened. For example, this can be done with arno's iptables firewall by editing {{ic|firewall.conf}} and opening the ports by doing:<br />
<br />
OPEN_TCP="8200"<br />
OPEN_UDP="1900"<br />
<br />
=== DLNA device file recognition ===<br />
<br />
Some devices do not probe or rescan on a consistent basis or at all. If files get add/subtracted to monitored media directories they may not be noticed until the device DLNA client is restarted.</div>Dispater124https://wiki.archlinux.org/index.php?title=PostgreSQL&diff=194425PostgreSQL2012-04-16T01:55:48Z<p>Dispater124: Added internal wiki link</p>
<hr />
<div>{{i18n|PostgreSQL}}<br />
[[Category:Database management systems (English)]]<br />
[[Category:Web Server (English)]]<br />
<br />
This document describes how to set up PostgreSQL. It also describes how to configure PostgreSQL to be accessible from a remote client. If you need help setting up the rest of a web stack, see the [[LAMP]] page and follow all of the sections except the one related to [[MySQL]].<br />
<br />
Several sections have instructions stating "become the postgres user". If sudo is installed, execute the following to get a shell as the postgres user:<br />
sudo -i -u postgres<br />
<br />
Otherwise su can be used:<br />
su root<br />
su - postgres<br />
<br />
==Installing PostgreSQL==<br />
*Install postgresql<br />
# pacman -S postgresql<br />
*Start the PostgreSQL server (The first time that this is run it will create the data directory and users needed to run the server. As such you will see a lot of output.)<br />
# rc.d start postgresql<br />
*(Optional) Add postgresql to the list of daemons that start on system startup in the /etc/rc.conf file<br />
<br />
==Creating Your First Database/User==<br />
*Become the postgres user. Add a new database user using the [http://www.postgresql.org/docs/9.0/static/app-createuser.html createuser] command.<br />
<br />
If you create a user as per your login user ($USER) it allows you to access the postgresql database shell without having to specify a user to login (which makes it quite convenient).<br />
<br />
e.g. to create a superuser<br />
<br />
$ createuser -s -U postgres<br />
$ Enter name of role to add: myUsualArchLoginName<br />
<br />
*Create a new database over which the above user has read/write privileges using the [http://www.postgresql.org/docs/9.0/static/app-createdb.html createdb] command.<br />
<br />
From your login shell ('''not''' the postrgres user's)<br />
<br />
$ createdb<br />
<br />
==Familiarizing Yourself with PostgreSQL==<br />
<br />
===Access the database shell===<br />
*Become the postgres user. Start the primary db shell, [http://www.postgresql.org/docs/8.3/static/app-psql.html psql], where you can do all your creation of databases/tables, deletion, set permissions, and run raw SQL commands. Use the "-d" option to connect to the database you created (without specifying a database, psql will try to access a database that matches your username)<br />
$ psql -d myDatabaseName<br />
<br />
Some helpful commands:<br />
<br />
*Connect to a particular database<br />
=> \c <database><br />
*List all users and their permission levels<br />
=> \du<br />
*Shows summary information about all tables in the current database<br />
=> \dt<br />
*exit/quit the psql shell<br />
=> \q or CTRL+d<br />
<br />
There are of course many more meta-commands, but these should help you get started.<br />
<br />
==Configure PostgreSQL to be accessible from remote hosts==<br />
The PostgreSQL database server configuration file is <code>postgresql.conf</code>. This file is located in the data directory of the server, typically <code>/var/lib/postgres/data</code>. This folder also houses the other main config files, including the <code>pg_hba.conf</code>.<br />
<br />
{{Note | By default this folder will not even be browseable (or searchable) by a regular user, if you are wondering why `find` or `locate` is not finding the conf files, this is the reason (threw me for a loop the first time I installed).}}<br />
<br />
#As root user edit the file<br><pre># vim /var/lib/postgres/data/postgresql.conf</pre><br />
#In the connections and authentications section uncomment or edit the <code>listen_addresses</code> line to your needs<br><pre>listen_addresses = '*'</pre>and take a careful look at the other lines.<br />
#Hereafter insert the following line in the host-based authentication file <code>/var/lib/postgres/data/pg_hba.conf</code>. This file controls which hosts are allowed to connect, '''so be careful'''.<br />
# IPv4 local connections:<br />
host all all your_desired_ip_address/32 trust<br />
where <code>your_desired_ip_address</code> is the IP address of the client.<br />
#After this you should restart the daemon process for the changes to take effect with<br><pre># rc.d restart postgresql</pre><br />
<br />
{{Note | Postgresql uses port 5432 by default for remote connections. So make sure this port is open and able to receive incoming connections}}<br />
<br />
For troubleshooting take a look in the server log file<br />
tail /var/log/postgresql.log<br />
<br />
==Configure PostgreSQL to Work With PHP==<br />
#Install the PHP-PostgreSQL modules<pre># pacman -S php-pgsql </pre><br />
#Open the file '''<code>/etc/php/php.ini</code>''' with your editor of choice, e.g.,<pre># vim /etc/php/php.ini</pre><br />
#Find the line that starts with, ";extension=pgsql.so" and change it to, "extension=pgsql.so". (Just remove the preceding ";"). If you need PDO, do the same thing with ";extension=pdo.so" and ";extension=pdo_pgsql.so". If these lines are not present, add them. These lines may be in the "Dynamic Extensions" section of the file, or toward the very end of the file.<br />
#Restart the Apache web server<pre># rc.d restart httpd</pre><br />
<br />
==Change Default Data Dir (Optional)==<br />
By default, when installing PostgreSQL the directory were all your newly created databases will be stored is <code>/var/lib/postgres/data</code>. If you want to change this behavior, you have to follow these steps:<br />
<br />
# Create the new directory and assign it to user <code>postgres</code> (you eventually have to become root):<br />
# mkdir /mypath/mydatadir<br />
# chown postgres:postgres /mypath/mydatadir<br />
# Become the postgres user, and initialize the new cluster:<br />
$ initdb -D /mypath/mydatadir<br />
# Edit <code>/etc/conf.d/postgresql</code> and change the PGROOT variable to point at your new data directory.<br />
<br />
==Change Default Encoding of New Databases To UTF-8 (Optional)==<br />
When creating a new database (e.g. with <code>createdb blog</code>) PostgreSQL actually copies a template database. There are two predefined templates: template0 is vanilla, while template1 is meant as an on-site template changeable by the administrator and is used by default. In order to change the encoding of new database, one of the options is to change on-site template1. To do this, log into PostgresSQL shell (psql) and execute the following:<br />
<br />
1. First, we need to drop template1. Templates cannot be dropped, so we first modify it so it is an ordinary database:<br />
UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';<br />
2. Now we can drop it:<br />
DROP DATABASE template1;<br />
3. The next step is to create a new database from template0, with a new default encoding:<br />
CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE';<br />
4. Now modify template1 so it is actually a template:<br />
UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1';<br />
6. (OPTIONAL) If you do not want anyone connecting to this template, set datallowconn to FALSE:<br />
UPDATE pg_database SET datallowconn = FALSE WHERE datname = 'template1';<br />
<br />
Now you can create a new database by running from regular shell:<br />
su -<br />
su - postgres<br />
createdb blog;<br />
<br />
If you log in back to psql and check the databases, you should see the proper encoding of your new database:<br />
\l<br />
returns<br />
List of databases<br />
Name | Owner | Encoding | Collation | Ctype | Access privileges<br />
-----------+----------+-----------+-----------+-------+----------------------<br />
blog | postgres | UTF8 | C | C |<br />
postgres | postgres | SQL_ASCII | C | C |<br />
template0 | postgres | SQL_ASCII | C | C | =c/postgres<br />
: postgres=CTc/postgres<br />
template1 | postgres | UTF8 | C | C |<br />
<br />
==Installing phpPgAdmin (optional)==<br />
[[Phppgadmin]] ([http://phppgadmin.sourceforge.net website]) is a web-based administration tool for PostgreSQL.<br />
<br />
#Make sure that the [community] repo is enabled.<br />
#Install the package via Pacman<pre># pacman -S phppgadmin</pre><br />
<br />
==Installing pgAdmin (optional)==<br />
[http://www.pgadmin.org/ pgAdmin] is a GUI-based administration tool for PostgreSQL.<br />
#Install the package via Pacman<pre># pacman -S pgadmin3</pre><br />
<br />
==Upgrading PostgreSQL ==<br />
{{Warning|Official PostgreSQL [http://www.postgresql.org/docs/current/static/upgrading.html upgrade] documentation should be followed.}}<br />
<br />
Note that these instructions could cause data loss. '''Use at your own risk'''.<br />
<br />
It is recommended to add the following to your <code>/etc/pacman.conf</code> file:<br />
IgnorePkg = postgresql postgresql-libs<br />
This will ensure you do not accidentally upgrade the database to an incompatible version. When an upgrade is available, pacman will notify you that it is skipping the upgrade because of the entry in pacman.conf. Minor version upgrades (e.g., 9.0.3 to 9.0.4) are safe to perform. However, if you do an accidental upgrade to a different major version (e.g., 9.0.X to 9.1.X), you might not be able to access any of your data. Always check the PostgreSQL home page (http://www.postgresql.org/) to be sure of what steps are required for each upgrade. For a bit about why this is the case see the [http://www.postgresql.org/support/versioning versioning policy].<br />
<br />
There are two main ways to upgrade your PostgreSQL database. Read the official documentation for details.<br />
<br />
For those wishing to use <code>pg_upgrade</code>, a {{Pkg|postgresql-old-upgrade}} package is available in the repositories that will always run one major version behind the real PostgreSQL package. This can be installed side by side with the new version of PostgreSQL. When you are ready to perform the upgrade, you can do<br />
pacman -Syu postgresql postgresql-libs postgresql-old-upgrade<br />
Note also that the data directory does not change from version to version, so before running pg_upgrade it is necessary to rename your existing data directory and migrate into a new directory. The new database must be initialized by starting the server, as described near the top of this page. The server then needs to be stopped before running pg_upgrade.<br />
<br />
# rc.d stop postgresql<br />
# su - postgres -c 'mv /var/lib/postgres/data /var/lib/postgres/olddata'<br />
# rc.d start postgresql<br />
# rc.d stop postgresql<br />
<br />
Reference the [http://www.postgresql.org/docs/current/static/pgupgrade.html upstream pg_upgrade documentation] for details.<br />
<br />
The upgrade invocation will likely look something like the following (run as the postgres user). '''Do not run this command blindly without understanding what it does!'''<br />
<br />
# pg_upgrade -d /var/lib/postgres/olddata/ -D /var/lib/postgres/data/ -b /opt/pgsql-8.4/bin/ -B /usr/bin/<br />
<br />
You could also do something like this (after the upgrade and install of postgresql-old-upgrade)<br />
<br />
# rc.d stop postgresql<br />
# /opt/pgsql-8.4/bin/pg_ctl -D /var/lib/postgres/olddata/ start<br />
# pg_dumpall >> old_backup.sql<br />
# /opt/pgsql-8.4/bin/pg_ctl -D /var/lib/postgres/olddata/ stop<br />
# rc.d start postgresql<br />
# psql -f old_backup.sql postgres<br />
<br />
==Performance issues==<br />
<br />
If you're using PostgresSQL on a local machine for development and it seems slow, you could try turning fsync off in the configuration (<code>/var/lib/postgres/data/postgresql.conf</code>).<br />
<br />
<pre>fsync = off</pre><br />
<br />
==More Resources==<br />
*[http://www.postgresql.org/ Official PostgreSQL Homepage]</div>Dispater124https://wiki.archlinux.org/index.php?title=Daemons&diff=190567Daemons2012-03-21T03:30:13Z<p>Dispater124: Added irqbalance</p>
<hr />
<div>[[Category:Boot process (English)]]<br />
[[Category:Daemons and system services (English)]]<br />
{{i18n|Daemon}}<br />
[[de:Daemons]]<br />
[[ro:Daemon]]<br />
<br />
A [[Wikipedia:Daemon (computing)|daemon]] is a program that runs in the background, waiting for events to occur and offering services. A good example is a web server that waits for a request to deliver a page or a ssh server waiting for someone trying to log in. While these are full featured applications, there are daemons whose work is not that visible. Daemons are for tasks like writing messages into a log file (e.g. syslog, metalog) or keeping your system time accurate (e.g. [[Network Time Protocol daemon|ntpd]]).<br />
<br />
{{Note|The word daemon is sometimes used for a class of programs that are started at boot but have no process which remains in memory. They are called daemons simply because they utilize the same startup/shutdown framework (e.g. {{ic|/etc/rc.d/}} scripts) used to start traditional daemons. For example, the {{ic|/etc/rc.d}} scripts for ''alsa'' and ''cpufreq'' provide persistent configuration support for their perspective kernel modules but do not start additional background processes to service requests or respond to events.<br />
<br />
From the user's perspective the distinction is typically not significant unless the user tries to look for the "daemon" in a process list.<br />
}}<br />
<br />
==Starting on Boot==<br />
A default install of Arch Linux will leave you with very few services (or daemons) enabled during boot. You can add or remove services by editing the {{ic|DAEMONS}} array in your [[rc.conf]] file. It will initially look something like this:<br />
DAEMONS=(syslog-ng network netfs crond)<br />
<br />
They will start in the order you have them listed. You can disable one and keep it in the array by prefixing it with an exclamation mark ({{ic|!}}). You can also have them start in the background by adding the {{ic|@}} symbol in front of it.<br />
<br />
Daemon scripts are stored in {{ic|/etc/rc.d/}}. You can print the list of all the available daemons on your system, along with their current status, with:<br />
$ rc.d list<br />
<br />
==Performing daemon actions manually==<br />
Every daemon has a series of actions that can be called with specific commands: usually there are at least {{ic|start}}, {{ic|stop}}, and {{ic|restart}}. You can issue each with:<br />
# /etc/rc.d/''daemon-name'' {start|stop|restart|...}<br />
A completely equivalent way is:<br />
# rc.d {start|stop|restart|...} ''daemon-name-1'' ''daemon-name-2'' ''daemon-name-3'' ...<br />
which, as it is clear from the example, works also with a list of daemons, calling for each the given action.<br />
<br />
For a list of all the available commands for a specific daemon, check its documentation, or just open the script in a text viewer.<br />
<br />
==Essentials==<br />
You do not have to add any more services, if you do not feel the need. However, a typical desktop user will add at least [[CUPS]] and [[dbus]]. As you install new services, you will have to manually add them to the {{ic|DAEMONS}} array in {{ic|/etc/rc.conf}}. (The {{ic|DAEMONS}} array is at the end of the default {{ic|rc.conf}} file.)<br />
<br />
==Starting Daemons in Background==<br />
This is helpful for starting a service and letting the next service start before the previous one has finished. Which services to start background depends on your needs. Do not background anything you need immediately. Here is an example:<br />
DAEMONS=(syslog-ng gensplash dbus network netfs @avahi-daemon @samba @crond @openntpd @cupsd @mpd)<br />
<br />
Starting {{ic|openntpd}} in the background could lead to synchronization errors between the actual time and the time stored on your computer. If you recognize an increasing time difference between your desktop clock and the actual time, try to start the {{ic|openntpd}} daemon normally and not in the background.<br />
<br />
==Rc.conf GUI Frontends==<br />
[[Rc.conf GUI Frontends]] allow you to easily change settings in {{ic|/etc/rc.conf}} using graphical application.<br />
<br />
==List of Daemons==<br />
Here is a list of daemons. Note that any package can provide a daemon, so this list will never be complete. Please feel free to add any missing daemons here, in alphabetical order.<br />
{| border="1"<br />
!Daemon!!Description<br />
|-<br />
|[[Acpid|acpid]]||Delivers ACPI events.<br />
|-<br />
|[[Advanced Linux Sound Architecture|alsa]]||Advanced Linux Sound Architecture; provides device drivers for sound cards.<br />
|-<br />
|atd||Run jobs queued for later execution.<br />
|-<br />
|[[Avahi|avahi-daemon]]||Allows programs to automatically find local network services.<br />
|-<br />
|[[Avahi|avahi-dnsconfd]]||<br />
|-<br />
|[[Cron|crond]]||Daemon to schedule and time events. The daemon name ''crond'' is used by at least two packages, {{Pkg|cronie}} and {{Pkg|dcron}}.<br />
|-<br />
|[[CUPS|cupsd]]||Common UNIX Printing System daemon.<br />
|-<br />
|[[Dropbox|dropboxd]]||Cross-platform file synchronisation with version control.<br />
|-<br />
|[[D-Bus|dbus]]||Message bus system for software communication.<br />
|-<br />
|[[FAM|fam]]||File Alteration Monitor. (deprecated)<br />
|-<br />
|[[Fbsplash|fbsplash]]||Graphical boot splash screen for the user.<br />
|-<br />
|[[Jacklistener|jacklistenerd]]||Reacts to headphone/microphone jack (un)plugging.<br />
|-<br />
|[[GDM|gdm]]||Gnome Display Manager (Login Screen)<br />
|-<br />
|[[Console Mouse Support|gpm]]||Console mouse support.<br />
|-<br />
|[[Fbsplash|gensplash]]||(see fbsplash)<br />
|-<br />
|[[HAL|hal]]||Hardware Abstraction Layer. (Deprecated)<br />
|-<br />
|[[LAMP|httpd]]||Apache HTTP Server (Web Server)<br />
|-<br />
|[[hwclock]]||Not a daemon as such, but on shutdown, updates hwclock to compensate for drift. Only run this daemon if ntpd is not running as both daemons adjust the hardware clock.<br />
|-<br />
|[[irqbalance]]||Irqbalance is the Linux utility tasked with making sure that interrupts from your hardware devices are handled in as efficient a manner as possible.<br />
|-<br />
|mdadm||MD Administration (Linux Software RAID).<br />
|-<br />
|[[Music Player Daemon|mpd]]||Music Player Daemon.<br />
|-<br />
|[[MySQL|mysqld]]||MySQL database server.<br />
|-<br />
|netfs||Mounts network file systems.<br />
|-<br />
|[[Configuring_Network|network]]||To bring up the network connections.<br />
|-<br />
|[[NetworkManager|networkmanager]]||Replace network, and provide configuration and detection for automatic network connections.<br />
|-<br />
|nsyslogd||<br />
|-<br />
|[[Network Time Protocol daemon|ntpd]]||Network Time Protocol daemon (client and server).<br />
|-<br />
|[[OpenNTPD|openntpd]]||alternate Network Time Protocol daemon (client and server).<br />
|-<br />
|pure-ftpd||FTP server.<br />
|-<br />
|[[Powernowd|powernowd]]||To adjust speed of CPU depending on system load. See also [[CPU_Frequency_Scaling]]<br />
|-<br />
|[[Rsyslog|rsyslogd]]||The latest version of a system logger.<br />
|-<br />
|[[SLiM|slim]]||Simple Login Manager<br />
|-<br />
|[[Samba|samba]]||File and print services for Microsoft Windows clients.<br />
|-<br />
|soundmodem||Multiplatform Soundcard Packet Radio Modem<br />
|-<br />
|[[USB_Scanner_Support|saned]]||To share the scanner system over network.<br />
|-<br />
|[[Lm_sensors|sensors]]||Hardware (temperature, fans etc) monitoring.<br />
|-<br />
|[[SMART|smartd]]||Self-Monitoring, Analysis, and Reporting Technology (S.M.A.R.T) Hard Disk Monitoring<br />
|-<br />
|[[Secure Shell|sshd]]||OpenSSH (secure shell) daemon.<br />
|-<br />
|stbd ||This daemon was previously necessary for gnome-system-tools. However, as of gnome-tools 2.28, it is no longer needed.<br />
|-<br />
|syslogd||This was the older and basic system logger.<br />
|-<br />
|[[Syslog-ng|syslog-ng]]||System logger next generation.<br />
|-<br />
|[[Timidity|timidity++]]||Software synthesizer for MIDI.<br />
|-<br />
|[[VirtualBox|vboxdrv]]||Necessary to run VirtualBox.<br />
|-<br />
|[[Very Secure FTP Daemon|vsftpd]]||FTP server.<br />
|-<br />
|[[Wicd|wicd]]||Combine with dbus to replace network, a lightweight alternative to NetworkManager.<br />
|-<br />
|}<br />
<br />
==See also==<br />
Examples for [[writing rc.d scripts]]</div>Dispater124https://wiki.archlinux.org/index.php?title=Running_GUI_applications_as_root&diff=190068Running GUI applications as root2012-03-19T04:12:49Z<p>Dispater124: /* The most secure methods */</p>
<hr />
<div>[[Category:X Server (English)]]<br />
<br />
By default, and for security reasons, root will be unable to connect to a non-root user's X server. There are multiple ways of allowing root to do so, if it is necessary.<br />
==The most secure methods==<br />
<br />
The most secure methods are simple. They include:<br />
<br />
* kdesu (included with KDE)<br />
$ kdesu ''name-of-app''<br />
* gksu (included with GNOME)<br />
$ gksu ''name-of-app''<br />
* bashrun (in community)<br />
$ bashrun --su ''name-of-app''<br />
* [[sudo]] (must be installed and properly configured with <code>visudo</code>)<br />
$ sudo ''name-of-app''<br />
* [[sux]] (wrapper around su which will transfer your X credentials)<br />
$ sux root ''name-of-app''<br />
<br />
These are the preferred methods, because they automatically exit when the application exits, negating any security risks quite completely.<br />
<br />
==Alternate methods==<br />
<br />
These methods will allow root to connect to a non-root user's X server, but present varying levels of security risks, especially if you run ssh. If you are behind a firewall, you may consider them to be safe enough for your requirements.<br />
<br />
* '''Temporarily allow root access'''<br />
<br />
*xhost <br />
$ xhost +<br />
will temporarily allow root, or ''anyone'' to connect your X server. Likewise,<br />
$ xhost -<br />
will disallow this function afterward. <br />
<br />
Some users also use:<br />
$ xhost + localhost<br />
(Your X server must be configured to listen to TCP connections for <code>xhost + localhost</code> to work).<br />
<br />
* '''Permanently allow root access'''<br />
<br />
*Globally in <code>/etc/profile</code><br />
Add the following to <code>/etc/profile</code><br />
export XAUTHORITY=/home/non-root-usersname/.Xauthority<br />
This will permanently allow root to connect to a non-root user's X server.<br />
<br />
Or, merely specify a particular app:<br />
export XAUTHORITY=/home/usersname/.Xauthority kwrite<br />
(to allow root to access kwrite, for instance.)</div>Dispater124https://wiki.archlinux.org/index.php?title=Synchronization_and_backup_programs&diff=189426Synchronization and backup programs2012-03-14T01:13:19Z<p>Dispater124: More BackupPC changes.</p>
<hr />
<div>[[Category:Data compression and archiving (English)]]<br />
[[Category:System recovery (English)]]<br />
{{i18n|Backup_Programs}}<br />
<br />
This wiki page contains information about various backup programs. It's a good idea to ''have'' regular backups of important data, most notably configuration files ({{Ic|/etc/*}}) and local pacman database (usually {{Ic|/var/lib/pacman/local/*}}).<br />
<br />
== Introduction ==<br />
Before you start trying various programs out, try to think about your needs, e.g. consider the following questions:<br />
* What backup medium do I have available?<br />
** cd / dvd<br />
** remote server (With what access? Ssh? Can I install some software on it (necessary for e.g. rsync-based solutions)?)<br />
** external harddrive<br />
* How often do I plan to backup?<br />
** daily?<br />
** weekly?<br />
** less often?<br />
* What goodies do I expect from the backup solution?<br />
** compression? (what algorithms?)<br />
** encryption? (gpg or something more straightforward?)<br />
* Most importantly: how do I plan to restore backups if needed?<br />
<br />
All right, enough with this, let's see some options!<br />
<br />
== Backup software ==<br />
=== Incremental backups ===<br />
The point with these is that they remember what has been backed up during the last run, and back up only what has changed. Great if you back up often.<br />
<br />
==== Rsync-type backups ====<br />
The main characteristic of this type of backups is that they maintain a copy of the directory you want to keep a backup of, in a traditional "mirror" fashion.<br />
<br />
Certain rsync-type packages also do snapshot backups by storing files which describe how the contents of files and folders changed from the last backup (the so-called 'diffs'). Hence, they are inherently incremental, but usually they do not have compression/encryption. On the other hand, a working copy of everything is immediately available, no decompression/decryption needed. Finally the way it works makes it hard to burn backups to cd/dvd..<br />
<br />
===== CLI =====<br />
* {{App|[[rsync]] (in extra repo)|file transfer program to keep remote files in sync<br />
** rsync almost always makes a mirror of the source<br />
** Impossible to restore a full backup before the most recent backup (but you can use --backup to keep old versions of the files)<br />
** Standard install on all distros<br />
** Can run over SSH (port 22) or native rsync protocol (port 873)<br />
** Win32 version available<br />
|http://rsync.samba.org/|{{Pkg|rsync}}}}<br />
<br />
* {{App|[[Wikipedia:Rsync#Variations|rdiff-backup]] (in community repo)|utility for local/remote mirroring and incremental backups<br />
** Stores most recent backup as regular files<br />
** To revert to older versions, you apply the diff files to recreate the older versions<br />
** It is granularly incremental (delta backup), it only stores changes to a file; will not create a new copy of a file upon change<br />
** Required python and librsync<br />
** Win32 version available<br />
|http://www.nongnu.org/rdiff-backup/|{{Pkg|rdiff-backup}}}}<br />
<br />
* {{App|rsnapshot (in community repo)|remote filesystem snapshot utility<br />
** Does not store diffs, instead it copies entire files if they have changed<br />
** Creates hard links between a series of backed-up trees (snapshots)<br />
** It is differential in that the size of the backup is only the original backup size plus the size of all files that have changed since the last backup.<br />
** Destination filesystem must support hard links<br />
** Requires perl<br />
** Win32 version available<br />
|http://www.rsnapshot.org/|{{Pkg|rsnapshot}}}}<br />
<br />
* {{App|Safekeep (in AUR)|A client/server backup system which enhances the power of rdiff-backup<br />
** Enhancement to rdiff-backup<br />
** Integrates with Linux LVM and databases to create consistent backups<br />
** Bandwidth throttling<br />
|http://safekeep.sourceforge.net/|{{AUR|safekeep}}}}<br />
<br />
* {{App|Link-Backup (from AUR, may be patched with additional features)|similar to rsync based scripts, but does not use rsync<br />
** Creates hard links between a series of backed-up trees (snapshots)<br />
** Intelligently handles renames, moves, and duplicate files without additional storage or transfer<br />
** dstdir/.catalog is a catalog of all unique file instances; backup trees hard-link to the catalog<br />
** Transfer occurs over standard I/O locally or remotely between a client and server instance of this script<br />
** It copies itself to the server; it does not need to be installed on the server<br />
** Requires SSH for remote backups<br />
** It resumes stopped backups; it can even be told to run for n minutes<br />
|http://www.scottlu.com/Content/Link-Backup.html|{{AUR|link-backup}}}}<br />
<br />
* {{App|Unison|Synchronizes files between two machines over network (Lan or Inet) using smart diff method + rsync, allows one to interactively choose which changes to push, pull, or merge. |http://www.cis.upenn.edu/~bcpierce/unison/|{{Pkg|unison}}}}<br />
<br />
===== GUI =====<br />
* {{App|Back In Time (in AUR)|simple backup tool for Linux inspired from “flyback project” and “TimeVault”<br />
** Creates hard links between a series of backed-up trees (snapshots)<br />
** Inspired by FlyBack and TimeVault<br />
** Really is just a front-end to rsync, diff, cp<br />
** A new snapshot is created only if something changed since the last snapshot<br />
|http://backintime.le-web.org/|{{AUR|backintime}}}}<br />
<br />
* {{App|FlyBack (in AUR)|A clone of Apple's Mac OS X Time Machine software|http://www.flyback-project.org/|{{AUR|flyback}}}}<br />
<br />
* {{App|Areca Backup (in AUR)|easy to use and reliable backup solution for Linux and Windows<br />
** Written in Java<br />
** Primarily archive-based (ZIP), but will do file-based backup as well<br />
** Delta backup supported (stores only changes)<br />
|http://areca.sourceforge.net/|{{AUR|areca}}}}<br />
<br />
* {{App|Luckybackup (in AUR)|an easy program to backup and sync your files.<br />
** It is written in Qt and C++<br />
** It has Sync,Backup (with include and exclude options),Restore operations,Remote connection backup,Scheduled backups,Command line mode and more abilities.<br />
|http://luckybackup.sourceforge.net/index.html|{{AUR|luckybackup}}}}<br />
<br />
* {{App|syncbackup (in AUR)|Front-end for rsync provides a fast and extraordinarily copying tool. It offers the most common options that control its behavior and permit very flexible specification of the set of files to be copied.<br />
|http://www.darhon.com/syncbackup|{{AUR|syncbackup}}}}<br />
<br />
* {{App|[[BackupPC]] (in community repo)|BackupPC is a high-performance, enterprise-grade system for backing up Unix, Linux, WinXX, and MacOSX PCs, desktops and laptops to a server's disk. BackupPC is highly configurable and easy to install and maintain.<br />
|http://backuppc.sourceforge.net/index.html|{{Pkg|BackupPC}}}}<br />
<br />
==== Not rsync-based ====<br />
They tend to create (big) archive files (like tar.bz2), and (of course) keep track of what's been archived. Now creating tar.bz2 or tar.gz archives has the advantage that you can extract the backups with just tar/bzip2/gzip, so you do not need to have the backup program around.<br />
<br />
* {{App|backup-manager (in AUR)|command line backup tool for GNU/Linux, designed to help you make daily archives of your file system. Written in bash and perl, it can make archives and provides lots of interesting features:<br />
** 1 configuration file, 5 minutes setup<br />
** Manually invoke backup process or run daily unattended via CRON<br />
** Backup files, MySQL databases and Subversion repositories<br />
** Specify multiple targets to backup at once (/etc, /home, etc…)<br />
** Ability to exclude files from backup<br />
** Automatically purge old backups<br />
** Full backup only or Full + Incremental backup<br />
** Backup to an attached disk, LAN or Internet<br />
** Burns backup to CD/DVD with MD5 checksum verification<br />
** (Un)compresses archives in all open and arbitrary formats with any command line or GUI tool<br />
** Slice archives to 2 GB if using dar archives format<br />
** Backup over SSH<br />
** Encrypts archives<br />
** Offsite remote upload of archives via FTP, SSH, RSYNC or Amazon S3<br />
** Can run with different configuration files concurrently<br />
** Easy external hooks<br />
|http://www.backup-manager.org/|{{AUR|backup-manager}}}}<br />
<br />
* {{App|[[Backup with arch-backup|arch-backup]] (in community repo)|trivial backup scripts with simple configuration:<br />
** compression method can be configured<br />
** possible to specify more directories to backup<br />
|http://code.google.com/p/archlinux-stuff/|{{Pkg|arch-backup}}}}<br />
<br />
* {{App|[[Backup with hdup|hdup]] (in AUR)|it's no longer developed, the author develops rdup now (below); but it's still a decent one):<br />
** creates tar.gz or tar.bz2 archives<br />
** supports gpg encryption<br />
** supports pushing over ssh<br />
** possible to specify more directories to backup<br />
|http://miek.nl/projects/hdup2/|{{AUR|hdup}}}}<br />
<br />
* {{App|rdup (in AUR)|successor to hdup: the program *just determines* which files have changed since the last backup. It's completely up to you what do you want to do with that list. Some helper scripts are supplied, and with them it supports:<br />
** creating tar.gz archives '''or''' rsync-type copy<br />
** encryption (gpg and usual strong (eg. blowfish)), also applies for rsync-type copy<br />
** compression (also for rsync-type copy)<br />
|http://miek.nl/projects/rdup|{{AUR|rdup}}}}<br />
<br />
* {{App|[[Duplicity|duplicity]]|simple command-line utility which allows encrypted compressed incremental backup to nearly any storage. For even simpler usage there is {{AUR|duply}} frontend.<br />
** supports gpg encryption and signing<br />
** supports gzip compression<br />
** supports full or incremental backups, incremental backup stores only difference between new and old file<br />
** supports pushing over ftp, ssh/scp, rsync, WebDAV, WebDAVs, HSi and Amazon S3 or local filesystem<br />
|http://www.nongnu.org/duplicity/|{{Pkg|duplicity}}}}<br />
<br />
* {{App|[[Wikipedia:DAR (Disk Archiver)|DAR]]|A full-featured command-line backup tool, short for Disk ARchive<br />
** it uses its own format for archives (so you need to have it around when you want to restore)<br />
** supports splitting backups into more files by size<br />
** makefile-type config files, some custom scripts are available along with it<br />
** supports basic encryption (not gpg; but also strong, but you need to supply a password every time)<br />
** some gui tools for inspecting backups are also available {{AUR|kdar}} in [[AUR]] (but current dar needs beta version)<br />
** a script suitable for running from cron is [http://sarab.sourceforge.net/ sarab] (in {{AUR|sarab}} AUR): supports pretty much any backup scheme (Towers of Hanoi, Grandfather-Father-Son, etc..)<br />
|http://dar.linux.free.fr/|{{AUR|dar}}}}<br />
<br />
* {{App|Backerupper (in AUR)|simple program for backing up selected directories over a local network. Its main intended purpose is backing up a user's personal data.<br />
** GUI based<br />
** creating tar.gz archives<br />
** possible to define : backup frequency, backup time, Max copies<br />
|http://sourceforge.net/projects/backerupper/|{{AUR|backerupper}}}}<br />
<br />
* {{App|Manent (in AUR])|an algorithmically strong backup and archival program. It's Python based and has the following features:<br />
** Efficient backup to anything that looks like a storage<br />
** Works well over a slow and unreliable network<br />
** Offers online access to the contents of the backup<br />
** Backed up storage is completely encrypted<br />
** Several computers can use the same storage for backup, automatically sharing data<br />
** Not reliant on timestamps of the remote system to detect changes<br />
** Cross-platform support for Unicode file names<br />
|http://www.manent-backup.com/|{{AUR|manent}}}}<br />
<br />
* {{App|Déjà Dup (in AUR)|a simple backup program. It hides the complexity of doing backups the 'right way' (encrypted, off-site, and regular) and uses duplicity as the backend.<br />
** Integrated in gnome-control-center<br />
** Automatic, timed backup configurable in GUI<br />
** Restore wizard<br />
** Inherits several features of duplicity:<br />
*** exclude lists<br />
*** SFTP, FTP, samba, WebDAV destinations<br />
*** GPG Encryption<br />
|https://launchpad.net/deja-dup|{{AUR|deja-dup|}}}}<br />
<br />
=== Cloud backups ===<br />
* {{App|Crashplan (in AUR)|an online/offsite backup solution<br />
** Unlimited online space for very reasonable pricing.<br />
** Automatic and incremental backups to multiple destinations.<br />
** Intuitive GUI.<br />
** Offers encryption and de-duplication.<br />
** Software is generally free.<br />
|http://www.crashplan.com/|{{AUR|crashplan}}}}<br />
<br />
* {{App|Dropbox (in AUR)|client for the popular file-sharing service<br />
** A daemon monitors a specified directory, and uploads incremental changes to Dropbox.com. <br />
** Changes automatically show up on your other computers. <br />
** Includes file sharing and a public directory. <br />
** You can recover deleted files. <br />
** Community written add-ons. <br />
** Free accounts have 2GB storage.<br />
|http://www.getdropbox.com|{{AUR|nautilus-dropbox}} &ndash; extension for [[Nautilus]], {{AUR|dropbox}} &ndash; without Gnome dependencies}}<br />
<br />
* {{App|Jungle Disk (in AUR)|extension for Nautilus<br />
** Automatic backups to Amazon's servers.<br />
** Not free, but very low prices.<br />
|http://www.jungledisk.com/|{{AUR|nautilus-jungledisk}}}}<br />
<br />
* {{App|Tarsnap (in community repo)|secure online backup service for BSD, Linux, OS X, Solaris, Cygwin<br />
** Compressed encrypted backups to Amazon S3 Servers<br />
** Automate via cron<br />
** Incremental backups<br />
** Backup any files or directories<br />
** Command line only client<br />
** Very very low prices<br />
** Pay only for usage; bandwidth and storage <br />
|http://www.tarsnap.com|{{Pkg|tarsnap}}}}<br />
<br />
* {{App|Wuala (in AUR)|secure online storage<br />
** Closed source, free and paid version available.<br />
** Free account holds 2GB, (as of 2011.10.03.) disk space trading has been discontinued.<br />
** Includes file sharing and a public directory.<br />
** Incremental backup and sync are both supported.<br />
** Very convenient GUI.<br />
** Social networking features.<br />
** All files in the cloud are first encrypted locally.<br />
|http://www.wuala.com/|{{AUR|wuala}}, {{AUR|wuala-daemon}} &ndash; to run as daemon}}<br />
<br />
* {{App|Packrat|A simple, modular backup system that uses dar to take full/incremental backups of files and can store them locally, on a remote system via SSH, or on Amazon S3|http://www.zeroflux.org/projects|{{AUR|packrat}}}}<br />
<br />
=== Not incremental backups ===<br />
{{Poor writing}}<br />
<br />
* {{App|Q7Z (in AUR)|P7Zip GUI for Linux, which attempts to simplify data compression and backup. It can create the following archive types: 7z, BZip2, Zip, GZip, Tar. Use Q7Z if you want to:<br />
** Update existing archives quickly<br />
** Backup multiple folders to a storage location<br />
** Create or extract protected archives<br />
** Lessen effort by using archiving profiles and lists<br />
|http://k7z.sourceforge.net/|{{AUR|q7z}}}}<br />
<br />
* "Just copy everything into one big archive, but support writing to cd/dvd"-type: [http://www2.backup-manager.org/ backup-manager] (in [http://aur.archlinux.org/packages.php?ID=4351 AUR])<br />
<br />
* [[Partclone]] -- back up and restore only the used blocks of a partition<br />
<br />
* [http://redobackup.org/ Redo Backup and Recovery] - a nice liveCD that uses xPUD for the GUI and partclone for the backend.<br />
<br />
* {{AUR|filesystem-backup}} &ndash; simple bash script (was originally a MySQL backup script) that creates a rolling 7 days, rolling 4 weeks and static monthly backups in tar format. Good for servers without a GUI.<br />
<br />
* [http://clonezilla.org/ Clonezilla]<br />
** Boots from live CD, USB flash drive, or PXE server<br />
** Uses Partimage, ntfsclone, partclone, and dd, <br />
** Compatability with many file systems (ext2, ext3, ext4, reiserfs, xfs, jfs of GNU/Linux, FAT, NTFS, and HFS+)<br />
** Multicasting server to restore to many machines at once<br />
** If file system is supported , only used blocks in harddisk are saved and restored. For unsupported file system, sector-to-sector copy is done<br />
<br />
* [http://www.partimage.org/Main_Page Partimage]<br />
* [http://www.fsarchiver.org/Main_Page Fsarchiver] (in extra repo)<br />
** Support for basic file attributes (permissions, owner, ...)<br />
** Support for multiple file-systems per archive<br />
** Support for extended attributes (they are used by SELinux)<br />
** Support the basic file-system attributes (label, uuid, block-size) for all linux file-systems<br />
** Support for [http://www.fsarchiver.org/Cloning-ntfs ntfs filesystems] (ability to create flexible clones of windows partitions)<br />
** Checksumming of everything which is written in the archive (headers, data blocks, whole files)<br />
** Ability to restore an archive which is corrupt (it will just skip the current file)<br />
** Multi-threaded lzo, gzip, bzip2, lzma [[Compression|compression]]: if you have a dual-core / quad-core it will use all the power of your cpu<br />
** Support for splitting large archives into several files with a fixed maximum size<br />
** Encryption of the archive using a password. Based on blowfish from libcrypto from openssl.<br />
** Support backup of a mounted root filesystem (-A option)<br />
<br />
* [http://www.mondorescue.org/ Mondo Rescue]<br />
** Image-based backups, supporting Linux/Windows, I do not think it cares much about filesystems. Backs up MBR too, along with partition layout.<br />
** Compression rate adjustable<br />
** Can backup live systems (without having to halt it, unlike most, e.g. Clonezilla).<br />
** Can split image over as many as you want (just set the size for a CD - 700 MB to backup to CD, etc.).<br />
** Supports booting to a "live cd", in a sense, to perform a full restore.<br />
** Can backup/restore over NFS, cd's, tape drives and what not.<br />
** Can verify backups<br />
** Neat-o ncurses interface. Plus a free progressbar!<br />
** Customizable to all kinds of ends<br />
** Can get a bit confusing/time consuming to get up and running, and verify everything works.<br />
<br />
=== Versioning systems ===<br />
These are traditionally used for keeping track of software development; but if you want to have a simple way to manage your config files in one directory, it might be a good solution.<br />
<br />
* [http://www.selenic.com/mercurial/wiki/ mercurial] or [http://git.or.cz/ git] (both in extra repo)<br />
* [http://eigenclass.org/hiki/gibak-backup-system-introduction gibak]: a backup system based on git. it also supports binary diffs (for binaries, e-books, pictures, multimedia files, etc). on the homepage there is a short usage advice. it is meant to backup only the $HOME directory. one could also backup other directories (like /etc) by changing the $HOME variable to point to that directory (though i do not really recommend this). gibak is handy for people who are familiar with git. it uses .gitignore to filter files and one can use the git commands to restore files, browse through logs, diffs, etc. if one needs a gui, it is also possible to use gitk or qgit to browse through commits or do whatever these interfaces support. get it from AUR: http://aur.archlinux.org/packages.php?ID=18318.<br />
<br />
== External Resources ==<br />
* [http://www.halfgaar.net/backing-up-unix Backing up Linux and other Unix(-like) systems]<br />
* [http://www.askapache.com/security/mirror-using-rsync-ssh.html Mirroring an Entire Site using Rsync over SSH]</div>Dispater124https://wiki.archlinux.org/index.php?title=Synchronization_and_backup_programs&diff=189255Synchronization and backup programs2012-03-13T05:49:19Z<p>Dispater124: backuppc stub</p>
<hr />
<div>[[Category:Data compression and archiving (English)]]<br />
[[Category:System recovery (English)]]<br />
{{i18n|Backup_Programs}}<br />
<br />
This wiki page contains information about various backup programs. It's a good idea to ''have'' regular backups of important data, most notably configuration files ({{Ic|/etc/*}}) and local pacman database (usually {{Ic|/var/lib/pacman/local/*}}).<br />
<br />
== Introduction ==<br />
Before you start trying various programs out, try to think about your needs, e.g. consider the following questions:<br />
* What backup medium do I have available?<br />
** cd / dvd<br />
** remote server (With what access? Ssh? Can I install some software on it (necessary for e.g. rsync-based solutions)?)<br />
** external harddrive<br />
* How often do I plan to backup?<br />
** daily?<br />
** weekly?<br />
** less often?<br />
* What goodies do I expect from the backup solution?<br />
** compression? (what algorithms?)<br />
** encryption? (gpg or something more straightforward?)<br />
* Most importantly: how do I plan to restore backups if needed?<br />
<br />
All right, enough with this, let's see some options!<br />
<br />
== Backup software ==<br />
=== Incremental backups ===<br />
The point with these is that they remember what has been backed up during the last run, and back up only what has changed. Great if you back up often.<br />
<br />
==== Rsync-type backups ====<br />
The main characteristic of this type of backups is that they maintain a copy of the directory you want to keep a backup of, in a traditional "mirror" fashion.<br />
<br />
Certain rsync-type packages also do snapshot backups by storing files which describe how the contents of files and folders changed from the last backup (the so-called 'diffs'). Hence, they are inherently incremental, but usually they do not have compression/encryption. On the other hand, a working copy of everything is immediately available, no decompression/decryption needed. Finally the way it works makes it hard to burn backups to cd/dvd..<br />
<br />
===== CLI =====<br />
* {{App|[[rsync]] (in extra repo)|file transfer program to keep remote files in sync<br />
** rsync almost always makes a mirror of the source<br />
** Impossible to restore a full backup before the most recent backup (but you can use --backup to keep old versions of the files)<br />
** Standard install on all distros<br />
** Can run over SSH (port 22) or native rsync protocol (port 873)<br />
** Win32 version available<br />
|http://rsync.samba.org/|{{Pkg|rsync}}}}<br />
<br />
* {{App|[[Wikipedia:Rsync#Variations|rdiff-backup]] (in community repo)|utility for local/remote mirroring and incremental backups<br />
** Stores most recent backup as regular files<br />
** To revert to older versions, you apply the diff files to recreate the older versions<br />
** It is granularly incremental (delta backup), it only stores changes to a file; will not create a new copy of a file upon change<br />
** Required python and librsync<br />
** Win32 version available<br />
|http://www.nongnu.org/rdiff-backup/|{{Pkg|rdiff-backup}}}}<br />
<br />
* {{App|rsnapshot (in community repo)|remote filesystem snapshot utility<br />
** Does not store diffs, instead it copies entire files if they have changed<br />
** Creates hard links between a series of backed-up trees (snapshots)<br />
** It is differential in that the size of the backup is only the original backup size plus the size of all files that have changed since the last backup.<br />
** Destination filesystem must support hard links<br />
** Requires perl<br />
** Win32 version available<br />
|http://www.rsnapshot.org/|{{Pkg|rsnapshot}}}}<br />
<br />
* {{App|Safekeep (in AUR)|A client/server backup system which enhances the power of rdiff-backup<br />
** Enhancement to rdiff-backup<br />
** Integrates with Linux LVM and databases to create consistent backups<br />
** Bandwidth throttling<br />
|http://safekeep.sourceforge.net/|{{AUR|safekeep}}}}<br />
<br />
* {{App|Link-Backup (from AUR, may be patched with additional features)|similar to rsync based scripts, but does not use rsync<br />
** Creates hard links between a series of backed-up trees (snapshots)<br />
** Intelligently handles renames, moves, and duplicate files without additional storage or transfer<br />
** dstdir/.catalog is a catalog of all unique file instances; backup trees hard-link to the catalog<br />
** Transfer occurs over standard I/O locally or remotely between a client and server instance of this script<br />
** It copies itself to the server; it does not need to be installed on the server<br />
** Requires SSH for remote backups<br />
** It resumes stopped backups; it can even be told to run for n minutes<br />
|http://www.scottlu.com/Content/Link-Backup.html|{{AUR|link-backup}}}}<br />
<br />
* {{App|Unison|Synchronizes files between two machines over network (Lan or Inet) using smart diff method + rsync, allows one to interactively choose which changes to push, pull, or merge. |http://www.cis.upenn.edu/~bcpierce/unison/|{{Pkg|unison}}}}<br />
<br />
===== GUI =====<br />
* {{App|Back In Time (in AUR)|simple backup tool for Linux inspired from “flyback project” and “TimeVault”<br />
** Creates hard links between a series of backed-up trees (snapshots)<br />
** Inspired by FlyBack and TimeVault<br />
** Really is just a front-end to rsync, diff, cp<br />
** A new snapshot is created only if something changed since the last snapshot<br />
|http://backintime.le-web.org/|{{AUR|backintime}}}}<br />
<br />
* {{App|FlyBack (in AUR)|A clone of Apple's Mac OS X Time Machine software|http://www.flyback-project.org/|{{AUR|flyback}}}}<br />
<br />
* {{App|Areca Backup (in AUR)|easy to use and reliable backup solution for Linux and Windows<br />
** Written in Java<br />
** Primarily archive-based (ZIP), but will do file-based backup as well<br />
** Delta backup supported (stores only changes)<br />
|http://areca.sourceforge.net/|{{AUR|areca}}}}<br />
<br />
* {{App|Luckybackup (in AUR)|an easy program to backup and sync your files.<br />
** It is written in Qt and C++<br />
** It has Sync,Backup (with include and exclude options),Restore operations,Remote connection backup,Scheduled backups,Command line mode and more abilities.<br />
|http://luckybackup.sourceforge.net/index.html|{{AUR|luckybackup}}}}<br />
<br />
* {{App|syncbackup (in AUR)|Front-end for rsync provides a fast and extraordinarily copying tool. It offers the most common options that control its behavior and permit very flexible specification of the set of files to be copied.<br />
|http://www.darhon.com/syncbackup|{{AUR|syncbackup}}}}<br />
<br />
* {{App|BackupPC (in community repo)}}<br />
<br />
==== Not rsync-based ====<br />
They tend to create (big) archive files (like tar.bz2), and (of course) keep track of what's been archived. Now creating tar.bz2 or tar.gz archives has the advantage that you can extract the backups with just tar/bzip2/gzip, so you do not need to have the backup program around.<br />
<br />
* {{App|backup-manager (in AUR)|command line backup tool for GNU/Linux, designed to help you make daily archives of your file system. Written in bash and perl, it can make archives and provides lots of interesting features:<br />
** 1 configuration file, 5 minutes setup<br />
** Manually invoke backup process or run daily unattended via CRON<br />
** Backup files, MySQL databases and Subversion repositories<br />
** Specify multiple targets to backup at once (/etc, /home, etc…)<br />
** Ability to exclude files from backup<br />
** Automatically purge old backups<br />
** Full backup only or Full + Incremental backup<br />
** Backup to an attached disk, LAN or Internet<br />
** Burns backup to CD/DVD with MD5 checksum verification<br />
** (Un)compresses archives in all open and arbitrary formats with any command line or GUI tool<br />
** Slice archives to 2 GB if using dar archives format<br />
** Backup over SSH<br />
** Encrypts archives<br />
** Offsite remote upload of archives via FTP, SSH, RSYNC or Amazon S3<br />
** Can run with different configuration files concurrently<br />
** Easy external hooks<br />
|http://www.backup-manager.org/|{{AUR|backup-manager}}}}<br />
<br />
* {{App|[[Backup with arch-backup|arch-backup]] (in community repo)|trivial backup scripts with simple configuration:<br />
** compression method can be configured<br />
** possible to specify more directories to backup<br />
|http://code.google.com/p/archlinux-stuff/|{{Pkg|arch-backup}}}}<br />
<br />
* {{App|[[Backup with hdup|hdup]] (in AUR)|it's no longer developed, the author develops rdup now (below); but it's still a decent one):<br />
** creates tar.gz or tar.bz2 archives<br />
** supports gpg encryption<br />
** supports pushing over ssh<br />
** possible to specify more directories to backup<br />
|http://miek.nl/projects/hdup2/|{{AUR|hdup}}}}<br />
<br />
* {{App|rdup (in AUR)|successor to hdup: the program *just determines* which files have changed since the last backup. It's completely up to you what do you want to do with that list. Some helper scripts are supplied, and with them it supports:<br />
** creating tar.gz archives '''or''' rsync-type copy<br />
** encryption (gpg and usual strong (eg. blowfish)), also applies for rsync-type copy<br />
** compression (also for rsync-type copy)<br />
|http://miek.nl/projects/rdup|{{AUR|rdup}}}}<br />
<br />
* {{App|[[Duplicity|duplicity]]|simple command-line utility which allows encrypted compressed incremental backup to nearly any storage. For even simpler usage there is {{AUR|duply}} frontend.<br />
** supports gpg encryption and signing<br />
** supports gzip compression<br />
** supports full or incremental backups, incremental backup stores only difference between new and old file<br />
** supports pushing over ftp, ssh/scp, rsync, WebDAV, WebDAVs, HSi and Amazon S3 or local filesystem<br />
|http://www.nongnu.org/duplicity/|{{Pkg|duplicity}}}}<br />
<br />
* {{App|[[Wikipedia:DAR (Disk Archiver)|DAR]]|A full-featured command-line backup tool, short for Disk ARchive<br />
** it uses its own format for archives (so you need to have it around when you want to restore)<br />
** supports splitting backups into more files by size<br />
** makefile-type config files, some custom scripts are available along with it<br />
** supports basic encryption (not gpg; but also strong, but you need to supply a password every time)<br />
** some gui tools for inspecting backups are also available {{AUR|kdar}} in [[AUR]] (but current dar needs beta version)<br />
** a script suitable for running from cron is [http://sarab.sourceforge.net/ sarab] (in {{AUR|sarab}} AUR): supports pretty much any backup scheme (Towers of Hanoi, Grandfather-Father-Son, etc..)<br />
|http://dar.linux.free.fr/|{{AUR|dar}}}}<br />
<br />
* {{App|Backerupper (in AUR)|simple program for backing up selected directories over a local network. Its main intended purpose is backing up a user's personal data.<br />
** GUI based<br />
** creating tar.gz archives<br />
** possible to define : backup frequency, backup time, Max copies<br />
|http://sourceforge.net/projects/backerupper/|{{AUR|backerupper}}}}<br />
<br />
* {{App|Manent (in AUR])|an algorithmically strong backup and archival program. It's Python based and has the following features:<br />
** Efficient backup to anything that looks like a storage<br />
** Works well over a slow and unreliable network<br />
** Offers online access to the contents of the backup<br />
** Backed up storage is completely encrypted<br />
** Several computers can use the same storage for backup, automatically sharing data<br />
** Not reliant on timestamps of the remote system to detect changes<br />
** Cross-platform support for Unicode file names<br />
|http://www.manent-backup.com/|{{AUR|manent}}}}<br />
<br />
* {{App|Déjà Dup (in AUR)|a simple backup program. It hides the complexity of doing backups the 'right way' (encrypted, off-site, and regular) and uses duplicity as the backend.<br />
** Integrated in gnome-control-center<br />
** Automatic, timed backup configurable in GUI<br />
** Restore wizard<br />
** Inherits several features of duplicity:<br />
*** exclude lists<br />
*** SFTP, FTP, samba, WebDAV destinations<br />
*** GPG Encryption<br />
|https://launchpad.net/deja-dup|{{AUR|deja-dup|}}}}<br />
<br />
=== Cloud backups ===<br />
* {{App|Crashplan (in AUR)|an online/offsite backup solution<br />
** Unlimited online space for very reasonable pricing.<br />
** Automatic and incremental backups to multiple destinations.<br />
** Intuitive GUI.<br />
** Offers encryption and de-duplication.<br />
** Software is generally free.<br />
|http://www.crashplan.com/|{{AUR|crashplan}}}}<br />
<br />
* {{App|Dropbox (in AUR)|client for the popular file-sharing service<br />
** A daemon monitors a specified directory, and uploads incremental changes to Dropbox.com. <br />
** Changes automatically show up on your other computers. <br />
** Includes file sharing and a public directory. <br />
** You can recover deleted files. <br />
** Community written add-ons. <br />
** Free accounts have 2GB storage.<br />
|http://www.getdropbox.com|{{AUR|nautilus-dropbox}} &ndash; extension for [[Nautilus]], {{AUR|dropbox}} &ndash; without Gnome dependencies}}<br />
<br />
* {{App|Jungle Disk (in AUR)|extension for Nautilus<br />
** Automatic backups to Amazon's servers.<br />
** Not free, but very low prices.<br />
|http://www.jungledisk.com/|{{AUR|nautilus-jungledisk}}}}<br />
<br />
* {{App|Tarsnap (in community repo)|secure online backup service for BSD, Linux, OS X, Solaris, Cygwin<br />
** Compressed encrypted backups to Amazon S3 Servers<br />
** Automate via cron<br />
** Incremental backups<br />
** Backup any files or directories<br />
** Command line only client<br />
** Very very low prices<br />
** Pay only for usage; bandwidth and storage <br />
|http://www.tarsnap.com|{{Pkg|tarsnap}}}}<br />
<br />
* {{App|Wuala (in AUR)|secure online storage<br />
** Closed source, free and paid version available.<br />
** Free account holds 2GB, (as of 2011.10.03.) disk space trading has been discontinued.<br />
** Includes file sharing and a public directory.<br />
** Incremental backup and sync are both supported.<br />
** Very convenient GUI.<br />
** Social networking features.<br />
** All files in the cloud are first encrypted locally.<br />
|http://www.wuala.com/|{{AUR|wuala}}, {{AUR|wuala-daemon}} &ndash; to run as daemon}}<br />
<br />
* {{App|Packrat|A simple, modular backup system that uses dar to take full/incremental backups of files and can store them locally, on a remote system via SSH, or on Amazon S3|http://www.zeroflux.org/projects|{{AUR|packrat}}}}<br />
<br />
=== Not incremental backups ===<br />
{{Poor writing}}<br />
<br />
* {{App|Q7Z (in AUR)|P7Zip GUI for Linux, which attempts to simplify data compression and backup. It can create the following archive types: 7z, BZip2, Zip, GZip, Tar. Use Q7Z if you want to:<br />
** Update existing archives quickly<br />
** Backup multiple folders to a storage location<br />
** Create or extract protected archives<br />
** Lessen effort by using archiving profiles and lists<br />
|http://k7z.sourceforge.net/|{{AUR|q7z}}}}<br />
<br />
* "Just copy everything into one big archive, but support writing to cd/dvd"-type: [http://www2.backup-manager.org/ backup-manager] (in [http://aur.archlinux.org/packages.php?ID=4351 AUR])<br />
<br />
* [[Partclone]] -- back up and restore only the used blocks of a partition<br />
<br />
* [http://redobackup.org/ Redo Backup and Recovery] - a nice liveCD that uses xPUD for the GUI and partclone for the backend.<br />
<br />
* {{AUR|filesystem-backup}} &ndash; simple bash script (was originally a MySQL backup script) that creates a rolling 7 days, rolling 4 weeks and static monthly backups in tar format. Good for servers without a GUI.<br />
<br />
* [http://clonezilla.org/ Clonezilla]<br />
** Boots from live CD, USB flash drive, or PXE server<br />
** Uses Partimage, ntfsclone, partclone, and dd, <br />
** Compatability with many file systems (ext2, ext3, ext4, reiserfs, xfs, jfs of GNU/Linux, FAT, NTFS, and HFS+)<br />
** Multicasting server to restore to many machines at once<br />
** If file system is supported , only used blocks in harddisk are saved and restored. For unsupported file system, sector-to-sector copy is done<br />
<br />
* [http://www.partimage.org/Main_Page Partimage]<br />
* [http://www.fsarchiver.org/Main_Page Fsarchiver] (in extra repo)<br />
** Support for basic file attributes (permissions, owner, ...)<br />
** Support for multiple file-systems per archive<br />
** Support for extended attributes (they are used by SELinux)<br />
** Support the basic file-system attributes (label, uuid, block-size) for all linux file-systems<br />
** Support for [http://www.fsarchiver.org/Cloning-ntfs ntfs filesystems] (ability to create flexible clones of windows partitions)<br />
** Checksumming of everything which is written in the archive (headers, data blocks, whole files)<br />
** Ability to restore an archive which is corrupt (it will just skip the current file)<br />
** Multi-threaded lzo, gzip, bzip2, lzma [[Compression|compression]]: if you have a dual-core / quad-core it will use all the power of your cpu<br />
** Support for splitting large archives into several files with a fixed maximum size<br />
** Encryption of the archive using a password. Based on blowfish from libcrypto from openssl.<br />
** Support backup of a mounted root filesystem (-A option)<br />
<br />
* [http://www.mondorescue.org/ Mondo Rescue]<br />
** Image-based backups, supporting Linux/Windows, I do not think it cares much about filesystems. Backs up MBR too, along with partition layout.<br />
** Compression rate adjustable<br />
** Can backup live systems (without having to halt it, unlike most, e.g. Clonezilla).<br />
** Can split image over as many as you want (just set the size for a CD - 700 MB to backup to CD, etc.).<br />
** Supports booting to a "live cd", in a sense, to perform a full restore.<br />
** Can backup/restore over NFS, cd's, tape drives and what not.<br />
** Can verify backups<br />
** Neat-o ncurses interface. Plus a free progressbar!<br />
** Customizable to all kinds of ends<br />
** Can get a bit confusing/time consuming to get up and running, and verify everything works.<br />
<br />
=== Versioning systems ===<br />
These are traditionally used for keeping track of software development; but if you want to have a simple way to manage your config files in one directory, it might be a good solution.<br />
<br />
* [http://www.selenic.com/mercurial/wiki/ mercurial] or [http://git.or.cz/ git] (both in extra repo)<br />
* [http://eigenclass.org/hiki/gibak-backup-system-introduction gibak]: a backup system based on git. it also supports binary diffs (for binaries, e-books, pictures, multimedia files, etc). on the homepage there is a short usage advice. it is meant to backup only the $HOME directory. one could also backup other directories (like /etc) by changing the $HOME variable to point to that directory (though i do not really recommend this). gibak is handy for people who are familiar with git. it uses .gitignore to filter files and one can use the git commands to restore files, browse through logs, diffs, etc. if one needs a gui, it is also possible to use gitk or qgit to browse through commits or do whatever these interfaces support. get it from AUR: http://aur.archlinux.org/packages.php?ID=18318.<br />
<br />
== External Resources ==<br />
* [http://www.halfgaar.net/backing-up-unix Backing up Linux and other Unix(-like) systems]<br />
* [http://www.askapache.com/security/mirror-using-rsync-ssh.html Mirroring an Entire Site using Rsync over SSH]</div>Dispater124https://wiki.archlinux.org/index.php?title=Multi_Router_Traffic_Grapher&diff=189254Multi Router Traffic Grapher2012-03-13T04:23:09Z<p>Dispater124: fixed rc.d script</p>
<hr />
<div>[[Category:Networking (English)]]<br />
{{i18n|Mrtg}}<br />
{{Expansion}}<br />
== Server Setup ==<br />
this document assumes that you already have a [https://wiki.archlinux.org/index.php/Apache_and_FastCGI Apache ] and [https://wiki.archlinux.org/index.php/Snmpd net-snmp] working and configured properly<br />
<br />
The following should all be performed as root.<br />
<br />
* Install the necessary programs<br />
# pacman -S mrtg perl-net-snmp<br />
<br />
* create an mrtg user <br />
# useradd -d /srv/http/mrtg mrtg<br />
<br />
* create the user home directory and change the owner ship to the user<br />
# mkdir /srv/http/mrtg/<br />
# chown mrtg:mrtg /srv/http/mrtg<br />
<br />
<br />
== Apache configuration ==<br />
<br />
for the Apache configuration we need to simple add and alias which is directed to the HTML files locations :<br />
<br />
the configuration should look like this :<br />
<br />
<br />
Alias /mrtg /srv/http/mrtg/html/<br />
<Directory "/srv/http/mrtg/html/"><br />
AllowOverride None<br />
Options None<br />
DirectoryIndex index.html<br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
<br />
== MRTG Setup ==<br />
there are meny ways to configure the mrtg for your local server. this document will describe the must easest way to expend the application for other server and network appliances when and if needed.<br />
<br />
The following should all be performed as the mrtg user we created.<br />
<br />
* create an HTML directory to hold the png files and the index.html file<br />
# mkdir /srv/http/mrtg/html<br />
<br />
now we will begin dealing with the application scripts<br />
first we will create a basic mrtg.cfg file<br />
<br />
* the next script will scan our localhost for it's interfaces and create for us the relevent configuration for each interface<br />
# cfgmaker --output=/srv/http/mrtg/mrtg.cfg --ifref=name --ifref=descr --global "WorkDir: /srv/http/mrtg" public@localhost<br />
:* the mrtg.cfg files contains all the server interfaces. we do not need the "lo" interface so we are going to delete it and edit the global configuration<br />
<br />
== mrtg.cfg Global configuration ==<br />
<br />
remove the lines that are irrelevant to the interface and add the fallowing lines at the top:<br />
<br />
### Global configuration ###<br />
<br />
LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt<br />
EnableIPv6: no<br />
HtmlDir: /srv/http/mrtg/html<br />
ImageDir: /srv/http/mrtg/html<br />
LogDir: /srv/http/mrtg<br />
ThreshDir: /srv/http/mrtg<br />
RunAsDaemon: Yes<br />
Interval: 5<br />
Refresh: 600<br />
<br />
<br />
the global configuration lines are :<br />
<br />
:1) to load the Linux MIB to the mrtg Applicaiton<br />
:2) to enable/disable IPv6<br />
:3) HTML home directory<br />
:4) the png files home directory<br />
:5) the log dir files locations<br />
:6) the Thres Directory<br />
:7) wether or not we want to run the application as a daemon , in this case : yes<br />
:8) the daemon interval (minimum 5 min)<br />
:9) the interval to refresh the html files<br />
<br />
<br />
== resource monitoring ==<br />
<br />
now that we have the global configuration set we need to add the resources and devices we want to monitor.<br />
<br />
in this tutorial we are going to monitor:<br />
<br />
:1)CPU<br />
:2)memory Usage<br />
:3)swap<br />
:4)number of processes<br />
:5)Total TCP Established Connections<br />
:6)users count<br />
:7)the server mount points<br />
:8)the server interfaces<br />
<br />
=== CPU Monitoring ===<br />
<br />
for monitoring the CPU we need to add the next lines :<br />
<br />
Target[localhost.cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@127.0.0.1 + ssCpuRawSystem.0&ssCpuRawSystem.0:public@127.0.0.1 +\ <br />
ssCpuRawNice.0&ssCpuRawNice.0:public@127.0.0.1<br />
RouterUptime[localhost.cpu]: public@127.0.0.1<br />
MaxBytes[localhost.cpu]: 100<br />
Title[localhost.cpu]: CPU Load<br />
PageTop[localhost.cpu]: Active CPU Load %<br />
Unscaled[localhost.cpu]: ymwd<br />
ShortLegend[localhost.cpu]: %<br />
YLegend[localhost.cpu]: CPU Utilization<br />
Legend1[localhost.cpu]: Active CPU in % (Load)<br />
Legend2[localhost.cpu]:<br />
Legend3[localhost.cpu]:<br />
Legend4[localhost.cpu]:<br />
LegendI[localhost.cpu]: Active<br />
LegendO[localhost.cpu]:<br />
Options[localhost.cpu]: growright,nopercent<br />
<br />
<br />
=== Memory usage ===<br />
<br />
to monitor the memory usage we need to add the next lines :<br />
<br />
# get memory Usage<br />
Target[localhost.memtotal]: ( .1.3.6.1.4.1.2021.4.5.0&.1.3.6.1.4.1.2021.4.5.0:public@localhost ) - \<br />
( .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:public@localhost )<br />
PageTop[localhost.memtotal]: Memory Usage<br />
Options[localhost.memtotal]: nopercent,growright,gauge<br />
Title[localhost.memtotal]: Memory Usage<br />
MaxBytes[localhost.memtotal]: 100000000<br />
kMG[localhost.memtotal]: k,M,G,T,P,X<br />
YLegend[localhost.memtotal]: bytes<br />
ShortLegend[localhost.memtotal]: bytes<br />
LegendI[localhost.memtotal]: Memory Usage: <br />
LegendO[localhost.memtotal]:<br />
Legend1[localhost.memtotal]: Memory Usage, not including swap, in bytes<br />
Colours[localhost.memtotal]: Blue#1000ff, Black#000000, Gray#CCCCCC, Yellow#FFFF00<br />
<br />
=== Swap Usage ===<br />
<br />
for swap usage add the fallowing lines :<br />
# get swap memory<br />
Target[localhost.swap]:( .1.3.6.1.4.1.2021.4.3.0&.1.3.6.1.4.1.2021.4.3.0:public@localhost ) - \<br />
( .1.3.6.1.4.1.2021.4.4.0&.1.3.6.1.4.1.2021.4.4.0:public@localhost)<br />
PageTop[localhost.swap]: Swap Usage<br />
Options[localhost.swap]: nopercent,growright,gauge,noinfo<br />
Title[localhost.swap]: Swap Usage<br />
MaxBytes[localhost.swap]: 100000000 <br />
kMG[localhost.swap]: k,M,G,T,P,X<br />
YLegend[localhost.swap]: bytes<br />
ShortLegend[localhost.swap]: bytes<br />
LegendI[localhost.swap]: Swap Usage:<br />
LegendO[localhost.swap]:<br />
Legend1[localhost.swap]: Swap memory avail, in bytes<br />
Colours[localhost.swap]: Blue#1000ff,Violet#ff00ff,Black#000000, Gray#CCCCCC<br />
<br />
in the title section some calculation are made. MRTG knows to calculate the values given from the OID<br />
<br />
=== number of processes ===<br />
<br />
for getting the number of processes running we are doing some unique here<br />
<br />
# get number of processes running<br />
Target[localhost.procs]: `/usr/local/mrtg/linux_porc.pl`<br />
Title[localhost.procs]: Process Statistics<br />
PageTop[localhost.procs]: Process Statistics<br />
MaxBytes[localhost.procs]: 10000<br />
YLegend[localhost.procs]: Processes <br />
LegendI[localhost.procs]: &nbsp; Blocked Processes:<br />
LegendO[localhost.procs]: &nbsp; Run Queue:<br />
Legend1[localhost.procs]: Number of Blocked Processes <br />
Legend2[localhost.procs]: Number of Processes in Run Queue<br />
Legend3[localhost.procs]: Maximal Blocked Processes<br />
Legend4[localhost.procs]: Maximal Processes in Run Queue<br />
Options[localhost.procs]: growright, integer, nopercent, gauge<br />
<br />
<br />
as we can see here we are calling the command linux_proc.pl that was written in Perl and returns an Integer<br />
which presence the number of processes.<br />
<br />
the content of the command is :<br />
<br />
#!/usr/bin/perl<br />
open(COMD,"ps -ef | wc -l|");<br />
$num = <COMD>;<br />
close(COMD);<br />
<br />
print int($num);<br />
<br />
=== established connections ===<br />
<br />
in order to get a graph about established connections we are doing the way as the privies section :<br />
<br />
# get number of established connections<br />
Target[localhost.estconn]: `/usr/local/mrtg/linux_estconn.pl`<br />
Title[localhost.estconn]: Established connections<br />
PageTop[localhost.estconn]: Established connections<br />
MaxBytes[localhost.estconn]: 100000<br />
YLegend[localhost.estconn]: Established connections<br />
LegendI[localhost.estconn]: &nbsp; Established connections: <br />
Legend0[localhost.estconn]: Number of Established connections: <br />
Options[localhost.estconn]: growright, integer, nopercent, gauge<br />
Colours[localhost.estconn]: Red#FF0000,Blue#0066CC,Black#000000, White#FFFFFF<br />
<br />
<br />
the content of the file linux_estconn.pl is :<br />
<br />
<br />
#!/usr/bin/perl<br />
open(COMD,"netstat -an | grep ESTABLISHED | wc -l|");<br />
$num = <COMD>;<br />
close(COMD);<br />
<br />
print int($num);<br />
<br />
=== users count ===<br />
<br />
for the users count once again we are using a Perl script to create an integer output<br />
<br />
for the mrtg configuration we need to add :<br />
<br />
<br />
# get number of current users<br />
Target[localhost.users]: `/usr/local/mrtg/linux_users.pl`<br />
Title[localhost.users]: logged in users<br />
PageTop[localhost.users]: number of users<br />
MaxBytes[localhost.users]: 100000<br />
YLegend[localhost.users]: users count <br />
Legend0[localhost.users]: logged in users count: <br />
Options[localhost.users]: growright, integer, nopercent, gauge<br />
Colours[localhost.users]: Red#FF0000,White#FFFFFF,Blue#0066CC,Black#000000<br />
<br />
<br />
the linux_users.pl file content is :<br />
<br />
#!/usr/bin/perl<br />
open(COMD,"w | grep -v load | grep -v USER | wc -l|");<br />
$num = <COMD>;<br />
close(COMD);<br />
<br />
print int($num);<br />
<br />
=== monitor mount points ===<br />
<br />
in order to monitor mount points we first need to make sure that SNMP is sending us the relevant information<br />
to check the mount point OID we need first to see all the mount points by the command :<br />
<br />
snmpwalk -v 2c -c public localhost mount<br />
<br />
this will display all of the server mount points and there mount location.<br />
<br />
to monitor the mount point we want we need to take the last octet from the result and<br />
add it to the next 2 OID's<br />
<br />
.1.3.6.1.4.1.2021.9.1.8.<br />
.1.3.6.1.4.1.2021.9.1.6.<br />
<br />
so the mrtg.cfg section for the root FS will look like this :<br />
<br />
<br />
# monitor root FS <br />
Target[localhost.rootfs]: .1.3.6.1.4.1.2021.9.1.8.1&.1.3.6.1.4.1.2021.9.1.6.1:public@localhost<br />
PageTop[localhost.rootfs]: Root FS Usage<br />
Options[localhost.rootfs]: nopercent,growright,gauge,noinfo<br />
Title[localhost.rootfs]: Root FS Usage<br />
MaxBytes[localhost.rootfs]: 100000000<br />
YLegend[localhost.rootfs]: Giga bytes<br />
ShortLegend[localhost.rootfs]: bytes<br />
LegendI[localhost.rootfs]: Root FS Usage:<br />
Colours[localhost.rootfs]: Yellow#FFFF00, White#FFFFFF, Gray#CCCCCC, Blue#1000ff<br />
<br />
=== Server interface ===<br />
<br />
the server interface is outomaticly generated when we run the "cfgmaker" command.<br />
<br />
== Startup script ==<br />
<br />
If you want the MRTG daemon to start at boot add the next startup script:<br />
<br />
vi /etc/rc.d/mrtg<br />
<br />
<nowiki>#!/bin/bash <br />
. /etc/rc.conf<br />
. /etc/rc.d/functions<br />
LENG=C<br />
USER=mrtg<br />
MRTG=/usr/bin/mrtg<br />
MRTGCFG=/srv/http/mrtg/mrtg.cfg<br />
daemon_name=mrtg<br />
Start() {<br />
stat_busy "starting the MRTG Daemon"<br />
su - ${USER} -c "env LENG=${LANG} ${MRTG} ${MRTGCFG} > /dev/null"<br />
RETVAL=$?;<br />
if [[ $RETVAL -eq 0 ]]; then<br />
add_daemon $daemon_name<br />
stat_done<br />
else<br />
stat_fail<br />
exit 1<br />
fi<br />
}<br />
Stop() {<br />
stat_busy "Stopping the MRTG Daemon"<br />
PID=`ps -ef | grep mrtg.cfg | grep -v grep | awk '{print $2}'`<br />
if [[ ! -z ${PID} ]]; then<br />
kill ${PID}<br />
RETVAL=$?;<br />
if [[ $RETVAL -eq 0 ]]; then<br />
rm_daemon $daemon_name<br />
stat_done<br />
else<br />
stat_fail<br />
exit 1<br />
fi<br />
fi<br />
}<br />
case "$1" in<br />
start)<br />
Start;<br />
;;<br />
stop)<br />
Stop;<br />
;;<br />
restart)<br />
Stop;<br />
Start;<br />
;;<br />
*)<br />
echo "Usage: mrtg {start|stop|restart}";<br />
;;<br />
esac</nowiki></div>Dispater124https://wiki.archlinux.org/index.php?title=BackupPC&diff=188997BackupPC2012-03-12T05:20:53Z<p>Dispater124: lighttpd setup</p>
<hr />
<div> [[Category:System recovery (English)]]<br />
'''BackupPC''' is a high-performance, enterprise-grade system for backing up Unix, Linux, WinXX, and MacOSX PCs, desktops and laptops to a server's disk. BackupPC is highly configurable and easy to install and maintain.<br />
<br />
Given the ever decreasing cost of disks and raid systems, it is now practical and cost effective to backup a large number of machines onto a server's local disk or network storage. For some sites this might be the complete backup solution. For other sites additional permanent archives could be created by periodically backing up the server to tape.<br />
<br />
==Installation==<br />
<br />
BackupPC is part of the official repos. You can simply install it with pacman:<br />
# pacman -S backuppc<br />
<br />
=== Additional Packages ===<br />
The following packages are available if you want to<br />
* Use rsync as a transport: rsync & perl-file-rsyncp<br />
* Use compression: perl-compress-zlib<br />
<br />
<br />
===Start BackupPC===<br />
To manually start BackupPC issue this command.<br />
# /etc/rc.d/backuppc start<br />
<br />
===Make BackupPC run at startup===<br />
To make BackupPC load at startup edit /etc/rc.conf and add it to DAEMONS.<br />
# nano -w /etc/rc.conf<br />
DAEMONS=(... backuppc ...)<br />
<br />
==Apache Configuration==<br />
BackupPC has a web interface that allows you to easily control it. You can access it using Apache and mod_perl but other webservers like lighttpd works too. <br />
<br />
===Install Apache and mod_perl===<br />
# pacman -S apache mod_perl<br />
<br />
===Edit Apache configuration===<br />
Edit the Apache configuration file...<br />
# nano -w /etc/httpd/conf/httpd.conf<br />
<br />
...to load mod_perl, tell Apache to run as user backuppc and to include /etc/httpd/conf/extra/backuppc.conf<br />
<br />
LoadModule perl_module modules/mod_perl.so<br />
User backuppc<br />
Include conf/extra/backuppc.conf<br />
<br />
Edit /etc/BackupPC/config.pl. Set administrator name<br />
$Conf{CgiAdminUsers} = 'admin'; <br />
Next, we need to add a users file and set the admin password:<br />
# htpasswd -c /etc/backuppc/backuppc.users admin<br />
<br />
{{Note|The BackupPC-Webfrontend is initially configured, that you can only access it from the localhost. If you want to access it from all machines in your network, you have to edit /etc/httpd/conf/extra/backuppc.conf:}}<br />
# nano -w /etc/httpd/conf/extra/backuppc.conf<br />
Edit the line<br />
allow from 127.0.0.1<br />
to<br />
allow from 127.0.0.1 192.168.0<br />
where you have to replace 192.168.0 to your corresponding IP-Adresses you want to gain access from.<br />
<br />
===Starting BackupPC and Apache manually===<br />
# /etc/rc.d/backuppc start<br />
# /etc/rc.d/httpd start<br />
<br />
===Starting both on boot===<br />
Add the BackupPC and the Apache daemon to rc.conf<br />
# nano -w /etc/rc.conf<br />
DAEMONS=(... backuppc httpd ...)<br />
<br />
==Alternative lighttpd Configuration==<br />
/etc/lighttpd/lighttpd.conf<br />
<br />
server.port = 81<br />
server.username = "backuppc"<br />
server.groupname = "http"<br />
server.document-root = "/srv/http"<br />
server.errorlog = "/var/log/lighttpd/error.log"<br />
dir-listing.activate = "enable"<br />
index-file.names = ( "index.html", "index.php", "index.cgi" )<br />
mimetype.assign = ( ".html" => "text/html", ".txt" => "text/plain", ".jpg" => "image/jpeg", ".png" => "image/png", "" => "application/octet-stream" )<br />
<br />
server.modules = ("mod_alias", "mod_cgi", "mod_auth", "mod_access" )<br />
<br />
alias.url = ( "/BackupPC_Admin" => "/usr/share/backuppc/cgi-bin/BackupPC_Admin" )<br />
cgi.assign += ( ".cgi" => "/usr/bin/perl" )<br />
cgi.assign += ( "BackupPC_Admin" => "/usr/bin/perl" )<br />
<br />
auth.backend = "plain"<br />
auth.backend.plain.userfile = "/etc/lighttpd/passwd"<br />
auth.require = ( "/BackupPC_Admin" => ( "method" => "basic", "realm" => "BackupPC", "require" => "user=admin" ) )<br />
<br />
/etc/lighttpd/passwd<br />
admin:yourpasswordgoeshere<br />
<br />
<br />
==Accessing the admin page==<br />
Browse to http://localhost/BackupPC_Admin respectively http://YOUR_BACKUPPC_SERVER_IP/BackupPC_Admin<br />
<br />
==Resources==<br />
* [http://backuppc.sourceforge.net/index.html BackupPC Home Page]<br />
* [http://backuppc.sourceforge.net/faq/BackupPC.html BackupPC Documentation]</div>Dispater124