I actually had to use xinput for my own mouse to swap the buttons around.
Typically what I do (running KDE, though any distro should have something similar) is open the "startup" application manager. In KDE it's called Autostart. Then you just add your script file and you are done. On next reboot it will load up and your mouse will be working as you set it.
As for doing it in cron or anything else... (at least in cron) DO NOT type out the command itself in cron. I know when I have run scripts in the past in cron it is necessary to point it to the file itself. This will of course cause it to run that file you pointed it to at the specified time.
What else?
Make sure your script file is correct. It's completely possible you accidentally did something wrong. I know I did it at first unintentionally just transposing a couple things.
Example file:
mouse.sh
#!/bin/bash
xinput set-button-map "9" 1 2 3 4 5 8 9 6 7 10 11 12 13
(command) (option) ("Device ID") (Button Order)