Most scripting languages will have their own ways of executing system commands, so I'd recommend to go with what you're good at; but Python is a pretty good choice. It's great at stringing together a lot of other commands and it has a lot of well supported libraries for parsing the output and handling the web side of things.
As for executing the commands, I'd suggest sticking with Python wherever possible, as you'll find it easier to handle the error conditions. You probably won't be able to achieve everything you need that way, though. So, where you do have to fall back on system commands, take care to verify/sanitise your inputs. A missing variable, and extra space, or a file in the wrong place could have pretty catastrophic results. Not more than misusing the command line directly, of course, but with web interfaces you're at a remove from the command being run and you won't see the problem until it's too late.