Let me second and third the people recommending revision control. For many years, I used RCS, with an alias “rvi” that did something like ‘co -l $; vi $; ci -u $*’. Obviously I didn’t want to check in every file I edited, so it was something easy to remember, and which I drilled into coworker’s heads to use whenever they made any system-level changes.
Later, I used svn to centralize them on one server, and in recent years I’ve liked mercurial a lot (probably because it feels a lot like RCS). It doesn’t really matter which you choose, but it gives you very easy ways to diff changes without seeking out particular files, as well as rollback changes. Add a commit message that reminds you of why you made the change, too. I made it a policy that editing any system file without proper version control was a “track down who did it and shame them in front of the team” offense.
If you do just go with a timestamped backup file, at least put the date in correct order so ‘ls’ will sort by time. I use %F, which gives you YYYY-mm-dd, available in date, strftime(3), stat, and other places.