Does anyone have a bash script that will only backup new or modified files inside a specific directory?

Basically, what I'm looking for is an incremental backup. I've been running a full backup for a couple days now and it's just not practical.

4 Answers 4

man rsync

it does exactly what you need

to be more specific - you must have rsync --daemon on the machine with the files and the following command on the machine the backup is stored

/usr/bin/rsync -avz /some/dir/to/store/the/backup

where is the ip of the machine and ETC is defined in /etc/rsyncd.conf as seen below

        comment = etc
        path = /etc
        use chroot = yes
        list = no
        uid = 0
        gid = 0
        read only = yes
        hosts allow =,
        hosts deny =
        transfer logging = yes

also, port 873/tcp must be allowed in the firewall


I'd suggest rsnapshot.


rdiff-backup is honestly your best bet for this. I've been using it for about 2 years on a fairly large and active box. Using it is pretty straight forward:

rdiff-backup /my_active_dir /my_backup_dir/

If you're interested in backups over a network, check out Duplcity (Google for it, I can't post two links apparently) which works under the same concept but sends encrypted volumes to wherever you wish. Even supports Amazon S3.


rsync cannot create incremental backups. Try rdiff-backup.

  • 1
    That's not what man rsync suggests. See the --backup-dir=DIR option.
    – pavium
    Oct 24, 2009 at 12:06
  • that's why some people use tools which come with the distro, and others use third-party apps/scripts/etc - the patience to read manpages :)
    – quaie
    Oct 24, 2009 at 12:35

You must log in to answer this question.