Matt Hyclak wrote:
On Fri, Mar 23, 2007 at 01:55:00PM +0200, Chris Geldenhuis enlightened us:
I am trying to set up a quick disaster recovery methodology for a
client. It is supposed to work as follows:-
All Data files , everything in /etc (except for a few hardware specific
files such as fstab), all users .bashrc and .netrc files, all cron
tables etc. is written to a DVD as a zipped tar file. A recovery script
that unpacks this file, creates any directories required by the
application that are not backed up etc. is also written to the DVD.
The DVD is then mounted on a freshly installed system (Centos4.4 at
present) and the restore script is run. This restors all the saved files
on the DVD to their original positions and creates empty directories
where required for the application to run.
The recovery system is then rebooted and the differences in hardware are
taken care of by "kudzu" removing hw that was present on the "old"
system and installing hardware present on the "new" system - typically
network cards, usb controllers, scsi controllers, IDE controllers and
graphics cards.
All of the above works perfectly.
However when I then log in to the recovered system as a user via ssh, or
directly on a tty (non-gui), the login process does not execute the
instructions in the user's .bashrc file and I get a shell prompt with
none of the required environmental variables set - also the last line in
the .bashrc is an exec of a script that bring up the application - this
does not happen.
When I log in to the gui desktop as the user and then open a terminal
screen the instructions in the .bashrc do get executed
and the application runs as it should.
Any ideas of where to look ?
The bash man page, especially the section titled INVOCATION
Matt
Hi,
Thanks to all the guys that replied. Experimenting with the flags given
in the "INVOCATION" section of the bash man page has led me to a
work-around. I still don't understand why the original set up did not
work and why this does but I have to move on to the next project.
The work around is to edit the /etc/passwd file with sed in the recovery
script and change all the /bin/bash fields at the end of the user's
lines to /bin/bash -i. The exception is root - if root is changed the
"su" command does not work.
It works equally well if just a space is appended to the users lines in
/etc/passwd.
Logging in as a user on the gui screen and then starting a Terminal
screen no longer works. This is a minor inconvenience as users are not
supposed to work on the systems console.
Thanks again
ChrisG
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
http://lists.centos.org/mailman/listinfo/centos