Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It's 100% free, no registration required.

I'd like to setup machine for test some computation in my old laptop, before replicate the tests on the server. The computation will be image-processing and machine learning, run some program, load images and videos and run a svm training for object detection. the trainig could be 1 week of computations, maybe more.

The server will be CentOS, so I'm thinking about a Fedora machine. I'd like to make a setup bash script where I install all the needed (vpn, zsh, cmake, python, numpy, ffmpeg, libsvm, opencv, qt) and send me a report via mail when finished.

I'd like to automate everything with a script and make the image of the filesystem because the main idea is to have some data, analyse them in the next days, then reset the system, use new parameters for the learning algorithm, and run again the training program. repeat it.

The machine will have to run and I will wait it to finish so that I'm thinking about some watchdog with cronjob that tell me how is working, send me report in the end, send me a mail if something goes wrong, etc

I'm not a Linux guru so.. any kind of advice are welcome!

share|improve this question

closed as too broad by goldilocks, terdon, slm, jasonwryan, strugee Jan 30 '14 at 2:15

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs. If this question can be reworded to fit the rules in the help center, please edit the question.

    
Is installing cmake etc part of the test? If not, just install them once and the run your tests as many times as you like. –  terdon Jan 30 '14 at 0:35
    
I need cmake for compiling the tests.. –  nkint Jan 30 '14 at 8:19

3 Answers 3

The computation will be image-processing and machine learning.

Unless there is something very unusual going on in one of these two categories (I don't see any indication in your question that there is), these are just general purpose activities and do not require anything special in terms of system configuration.

The server will be a CentOS so I think about a fedora machine.

Fedora does not parallel CentOS WRT the default versions of component software, so (although you have described very little about what you want to do) this is unlikely to have any significance. I.e., it sounds like you intend to run some general purpose tasks on a general purpose server, so again, you don't need any special advice...

I'd like to make a setup bash script where I install all the needed (vpn, zsh, cmake, python, numpy, ffmpeg, libsvm, opencv, qt) and send me a report via mail when finished.

If you are intending to replicate your setup a bunch of times on many different systems, that makes sense. If not, you might as well just do it; depending on the machine and connection speed this is a very simple 5-10 min task, most of which is automated by the package manager. It does not require any particular distribution, or (again) any special set-up.

Then, for testing it I don't know.. is better a backup system? create a filesystem image?

I can't see anything in the "image processing" and "machine learning" department that would require you to rollback the system as whole. Maybe you should explain more specifically what you want to do and why you believe things like "creating a filesystem image" so you can "roll back, modify, and update the image" are vital (or even relavent) to running computationally intense tasks.

share|improve this answer
    
You are right, see the edit for question edits. I hope it's more detailed now. –  nkint Jan 30 '14 at 0:20

You can run CentOS on laptops, it's not exclusively for desktops, I use it as one of my primary desktops in my home office. I would suggest finding out the version of CentOS that your server is running and mirror that same version on your system as well.

This command will show you the version:

$ cat /etc/redhat-release 
CentOS release 6.5 (Final)

To keep things simple I would determine what packages you'll need on your installation (proper names + versions) and make sure you have them in a simple script that you can re-install from, once you've setup the base OS.

Nothing fancy here something like this if they're locally maintained RPM packages:

$ sudo yum localinstall rpm1 rpm2 rpm3...

If you're just re-installing them from official YUM repositories then just keep a command handy like this:

$ sudo yum install pkg1 pkg2 ....

Beyond that I would suggest keeping a copy of your $HOME directory in case you want to keep things between installs. If you're going to be doing this more than say 5-10 times then I would suggest other methods.

share|improve this answer
    
thanks for the answer. see the edits, I hope now is a little bit more detailed! –  nkint Jan 30 '14 at 0:21

The question is kinda generic and not specific to Unix or scripting, but I'll give it a try: sure, you could for example set up a virtual machine first to test whatever you want to do. Many virtual machine solutions offer to create snapshots of the virtual machine - if something breaks, you can roll back to a previous (working) state.

share|improve this answer
    
You are right, see the edit for question edits. I hope it's more detailed now. –  nkint Jan 30 '14 at 0:21

Not the answer you're looking for? Browse other questions tagged or ask your own question.