- 1). Launch your backup software. If you have software that automatically performs backups for you on a given schedule, you need only open its settings and select "incremental" or "differential." If you use OS X's "Time Machine" software, then your backups are automatically incremental.
- 2). Program your own backup script. You can do this with any programming language, but it will likely be best done with a high level scripting language, such as Python or Perl. Using this method, it is best if you only back up your home folder.
- 3). Create a master list of files. You can either program a script designed to be run only once to create this list for use by your regular backup script, or you can make your normal script capable of cataloging large numbers of files whenever it is run. Make the list include the file's name, the date when it was last backed up, its directory, and some means of tracking when the file has changed. MD5 sums are good for this purpose.
- 4). Write a function that scans the files on your hard drive, and compares it to your master list. If it encounters a file that is not on the master list, include the functionality to add the file, and its information, to the master list. This way you won't have to manually edit your script every time you create a new file.
- 5). Compare the scanned file to its data in the master list in your script. If the method you have used to identify change, I recommended MD5 sums (the data constituting your file is run through an encryption algorithm, producing a unique alpha-numeric string that changes if a byte of your file's data does), is different, then that will be the trigger to overwrite the file in your backup drive with the file currently on your hard drive. Have your script update the master list with the new information accordingly.
- 6). Run your program for the first time to set up your incremental backup system. After this, use your system's scheduler to set the intervals at which your incremental backup script will run. If you want to use a differential system, then set up the scheduler to alternate between your script that automatically copies every file in the target folder, and your script that only copies files that have changed.