Hi all,
Following is my small script:-
#!/bin/ksh
for i in `cat /users/jack/mainfile-dr.txt`
do
sudo cp -r $i /users/jack/DR01/.
done
cd /users/jack/DR01/
sudo tar cvf system1-DR.tar *
scp system1-DR.tar backupserver:/DRFiles/system1
sudo rm -rf system1-DR.tar
In this script I copy some imp files to one local folder then tar it and send it via scp to backupserver .
my question is how tar these content along with the current time and date of system when it gets compressed(tared).
something like
system1-DR.11Jan2013-08:12:31.tar
Could you please guide me on this.
I am getting interest in scripting now, I am beginner, I need your advice.
Thanks in advance,
Manali
Yoda
January 31, 2013, 2:58pm
2
That is Dangerous Backticks
Use a while
loop instead to read the file, here is the modified code to create tar
file with time-stamp:
#!/bin/ksh
while read i
do
sudo cp -r "$i" /users/jack/DR01/.
done < /users/jack/mainfile-dr.txt
cd /users/jack/DR01/
TS=$( date +"%d%b%Y-%H:%M:%S" )
sudo tar cvf system1-DR.${TS}.tar *
scp system1-DR.${TS}.tar backupserver:/DRFiles/system1
sudo rm -rf system1-DR.${TS}.tar
1 Like
Thanks bipinajith for reply...
So you mean to say below script will also work ? with two addtional line above, I hope it will
#!/bin/ksh
cd /users/jack/DR01/
sudo cp /etc/default/passwd /users/jack/passwd-default
while read i
do
sudo cp -r "$i" /users/jack/DR01/.
done < /users/jack/mainfile-dr.txt
cd /users/jack/DR01/
TS=$( date +"%d%b%Y-%H:%M:%S" )
sudo tar cvf system1-DR.${TS}.tar *
scp system1-DR.${TS}.tar backupserver:/DRFiles/system1
sudo rm -rf system1-DR.${TS}.tar
Why you say "That is Dangerous Backticks", can you explain in single line, I saw that link but no idea..
Thanks again,
I will check your date code in my script now.
Yoda
January 31, 2013, 3:32pm
4
There is a kernel limitation ARG_MAX
. If the data fetched inside the back-ticks is not within this limit, your script will fail.
So it is always a good programming practice to avoid using such construct.
1 Like
Hey bipinath,
Thanks for reply but
I get error. which doing scp
ssh: system1-DR.31Jan2013-21: node name or service name not known
Please advise.
Thanks,
---------- Post updated at 02:07 AM ---------- Previous update was at 02:07 AM ----------
however the tar file got removed by the script.
---------- Post updated at 02:09 AM ---------- Previous update was at 02:07 AM ----------
else I can write it down
scp *.tar backupserver:/DRFiles/system1
---------- Post updated at 02:09 AM ---------- Previous update was at 02:09 AM ----------
tar file showing Date but not Time
Yoda
January 31, 2013, 3:46pm
6
The colon :
in the time-stamp is causing issue. Create time-stamp without colon :
TS=$( date +"%d%b%Y-%H-%M-%S" )
1 Like
wait I need to ask something more
---------- Post updated at 02:22 AM ---------- Previous update was at 02:17 AM ----------
wow sir it worked!
but one question
system1-DR.31Jan2013-21-49-05.tar is the file created
and time on local system is:
Thursday, January 31, 2013 9:49:29 PM CET
and on target system is
Thu Jan 31 23:27:42 CET 2013
---------- Post updated at 02:22 AM ---------- Previous update was at 02:22 AM ----------
so what is the time tar file captured ???
---------- Post updated at 02:24 AM ---------- Previous update was at 02:22 AM ----------
I guess it is amsterdam local time..?
is it?
---------- Post updated at 02:25 AM ---------- Previous update was at 02:24 AM ----------
You gave me great things to learn, thanks for till now whatever You have taught me.
Yoda
January 31, 2013, 3:56pm
8
Local system time.
Because you captured the time-stamp and created your tar
file in your local system.
Yes Sir,
it create tar with city Amsterdam local time.
---------- Post updated at 02:30 AM ---------- Previous update was at 02:28 AM ----------
Thank You very much sir.
I am beginner in scripting,but surely If I get such ideas I will do more practice on this stuff.
---------- Post updated at 02:32 AM ---------- Previous update was at 02:30 AM ----------
one more question:
drwxr-xr-x 2 sysmgr staff 512 Jan 31 21:17 ./
drwxr-x--- 8 sysmgr staff 1024 Jan 31 21:12 ../
-rw-r--r-- 1 root root 393 Jan 31 21:17 dfstab
-rw-r--r-- 1 root root 401 Jan 31 21:17 group
-r-xr-xr-x 1 root root 641 Jan 31 21:17 init*
-rw-r--r-- 1 root root 2982 Jan 31 21:17 passwd
-r--r--r-- 1 root root 1614 Jan 31 21:17 passwd-default
-rw-r--r-- 1 root root 1258 Jan 31 21:17 profile
-r--r--r-- 1 root root 5007 Jan 31 21:17 services
-r-------- 1 root root 1328 Jan 31 21:17 shadow
-r--r--r-- 1 root root 0 Jan 31 21:17 sharetab
-r--r--r-- 1 root root 132 Jan 31 21:17 shells
-rw-r--r-- 1 root root 7867 Jan 31 21:17 system
-rw-r--r-- 1 root root 2871 Jan 31 21:17 vfstab
these files will be overwritten next time when I execute same script right ?
Yoda
January 31, 2013, 4:07pm
10
Which path are you referring to here? If you are talking about the recursive copy that you are performing, then yes the files will be overwritten.
1 Like
Wonderful explanation. You solved all my problems.