How to Archive Old Fedora Releases

The Fedora download servers contain terabytes of data, and to allow for mirrors to not have to take all of that data, infrastructure regularly moves data of end of lifed releases (from /pub/fedora/linux) to the archives section (/pub/archive/fedora/linux)

Steps Involved

  1. log into and ssh to bodhi-backend01

    $ sudo -i ssh
    # su - ftpsync
  2. Then change into the releases directory.

    $ cd /pub/fedora/linux/releases
  3. Check to see that the target directory doesn’t already exist.

    $ ls /pub/archive/fedora/linux/releases/
  4. If the target directory does not already exist, do a recursive link copy of the tree you want to the target

    $ cp -lvpnr 21 /pub/archive/fedora/linux/releases/21
  5. If the target directory already exists, then we need to do a recursive rsync to update any changes in the trees since the previous copy.

    $ rsync -avAXSHP --delete ./21/ /pub/archive/fedora/linux/releases/21/
  6. We now do the updates and updates/testing in similar ways.

    $ cd ../updates/
    $ cp -lpnr 21 /pub/archive/fedora/linux/updates/21
    $ cd testing
    $ cp -lpnr 21 /pub/archive/fedora/linux/updates/testing/21

    Alternative if this is a later refresh of an older copy.

    $ cd ../updates/
    $ rsync -avAXSHP 21/ /pub/archive/fedora/linux/updates/21/
    $ cd testing
    $ rsync -avAXSHP 21/ /pub/archive/fedora/linux/updates/testing/21/
  7. Do the same with fedora-secondary.

  8. Announce to the mirror list this has been done and that in 2 weeks you will move the old trees to archives.

  9. In two weeks, log into mm-backend01 and run the archive script

    $ sudo -u mirrormanager mm2_move-to-archive --originalCategory="Fedora Linux" --archiveCategory="Fedora Archive" --directoryRe='/21/Everything'
  10. If there are problems, the postgres DB may have issues and so you need to get a DBA to update the backend to fix items.

  11. Wait an hour or so then you can remove the files from the main tree.

    $ ssh bodhi-backend01
    $ cd /pub/fedora/linux
    $ cd releases/21
    $ ls # make sure you have stuff here
    $ rm -rf *
    $ ln ../20/README .
    $ cd ../../updates/21
    $ ls #make sure you have stuff here
    $ rm -rf *
    $ ln ../20/README .
    $ cd ../testing/21
    $ ls # make sure you have stuff here
    $ rm -rf *
    $ ln ../20/README .

This should complete the archiving.