Linux scripting question
qwertyiop
Member Posts: 725 ■■■□□□□□□□
I would like to create a shell or python script that will copy multiple directories one after the other and am not sure how to start.
for example
cp -au /home/user /backup
cp -au /home/user /backup
cp -au /tmp/ /backup
Please not that the source and destinations of my actual files will all be in different directories
for example
cp -au /home/user /backup
cp -au /home/user /backup
cp -au /tmp/ /backup
Please not that the source and destinations of my actual files will all be in different directories
Comments
-
jibbajabba Member Posts: 4,317 ■■■■■■■■□□Actually you could just add those lines into a file called
something.sh
then make it executable
chmod +x something.sh
and execute it
./something.sh
Dirty - but worksMy own knowledge base made public: http://open902.com -
qwertyiop Member Posts: 725 ■■■□□□□□□□Actually you could just add those lines into a file called
something.sh
then make it executable
chmod +x something.sh
and execute it
./something.sh
Dirty - but works
Thanks for that. I have another question, In linux how could O script a check? By this I mean check if a directory exist and if not then make directory and continue on to the next step. -
jibbajabba Member Posts: 4,317 ■■■■■■■■□□Not 100% sure, what I do is for example
TODAY_DATE=`date +%d%m%Y` mkdir /backup/$TODAY_DATE
That creates a folder based on the current date. If the folder exists, it simply saysmkdir: cannot create directory `25032011': File exists
But continues with the operation .. Not sure if that is what you need thoughMy own knowledge base made public: http://open902.com -
lordy Member Posts: 632 ■■■■□□□□□□You should have a look at "man test". There are a bunch of these tests that you can run. Example:
if [ -d /tmp ]; then echo "/tmp exists" fi if [ -x /bin/true ]; then echo "/bin/true is executable" fi
You can invert these checks by using !.if [ ! -z /etc/motd ]; then echo "/etc/motd is NOT empty" fi
PS: The message filter on this board sukcs. You cannot write "/etc/p a s s w d" in your post. Took 5 minutes of my precious time to figure that out...Working on CCNP: [X] SWITCH --- [ ] ROUTE --- [ ] TSHOOT
Goal for 2014: RHCA
Goal for 2015: CCDP -
qwertyiop Member Posts: 725 ■■■□□□□□□□You should have a look at "man test". There are a bunch of these tests that you can run. Example:
if [ -d /tmp ]; then echo "/tmp exists" fi if [ -x /bin/true ]; then echo "/bin/true is executable" fi
You can invert these checks by using !.if [ ! -z /etc/motd ]; then echo "/etc/motd is NOT empty" fi
PS: The message filter on this board sukcs. You cannot write "/etc/p a s s w d" in your post. Took 5 minutes of my precious time to figure that out...
Thanks alot for your help, i really appreciate it.
I hope you can answer me one more question.
The first portion that you posted about checking if the /tmp exists. Thats exactly what im trying to do but id like it to execute a command if it is true. Is that possible and ifso how?
If that doesn't make much sense, in batch I would do something like this:
if exist c:\foo goto next
:next
copy c:\foo d:\backup -
lordy Member Posts: 632 ■■■■□□□□□□It's easy. You can put anything between if and fi that you need. Example:
if [ -d /some/directory ]; then cp /some/directory/* /some/other/directory/ fi
Working on CCNP: [X] SWITCH --- [ ] ROUTE --- [ ] TSHOOT
Goal for 2014: RHCA
Goal for 2015: CCDP -
qwertyiop Member Posts: 725 ■■■□□□□□□□It's easy. You can put anything between if and fi that you need. Example:
if [ -d /some/directory ]; then cp /some/directory/* /some/other/directory/ fi
Am I correct to assume that if the directory above doesn't exist that it will skip to the next line in my script? -
MentholMoose Member Posts: 1,525 ■■■■■■■■□□Yes. Check the man page for "test". For "-d" it says:FILE exists and is a directoryMentholMoose
MCSA 2003, LFCS, LFCE (expired), VCP6-DCV