nice new tool to show version of feisty meow
[feisty_meow.git] / scripts / security / tell_zooty_our_ip.sh
index f227d7905a51c4e0be70563d37ebf3f57da84574..e35228cd3dadfaa118c0ac9a8967470ae505b510 100644 (file)
@@ -1,44 +1,34 @@
 #!/bin/bash
-# this script acquires our local IP address and connects over to zooty
-# to write a status file there.  this enables us to later connect backwards
-# to our home system without being hosed by the floating IP address.
-
-#hmmm:  none of the user info below will work for others: parameterize it.
-
-server=zooty.koeritz.com
-username=fred
-local_user=fred
-tempdir=/tmp  # where we generate our files.
-
-source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh
-
-soundfile=$FEISTY_MEOW_DIR/database/sounds/woouoo.wav
-if [ ! -z "$1" ]; then
-  soundfile=$1
+# this script connects to a remote machine and records the IP address of the
+# local machine there.  this enables the machine's owner to connect back to
+# the system even if the IP address floats around (changes).
+
+server="$1"; shift
+remote_user="$1"; shift
+local_user="$1"; shift
+
+if [ -z "$server" -o -z "$remote_user" -o -z "$local_user" ]; then
+  echo "This script will record the IP address for 'this' host into a file on a"
+  echo "remote computer (that is running ssh server).  To perform this feat, the"
+  echo "following parameters are required:"
+  echo "  $(basename $0) {server} {remote-user} {local-user}"
+  echo "Note that this script must be run as root, but it uses the local user's"
+  echo "capability to connect to the remote system without a password (given the"
+  echo "user's possession of an ssh certificate on the remote host).  The remote"
+  echo "user, in other words, must have an entry in the ssh authorized_keys that"
+  echo "allows the local user to connect."
+  exit 1
 fi
 
-ip_file="$(mktemp ${tempdir}/ip_${USER}_$(hostname | sed -e "s/\..*$//").XXXXXX)"
-
-# get live ip address
-pushd $tempdir
-wget http://automation.whatismyip.com/n09230945.asp -O "$ip_file" 
+ip_file="$(hostname | sed -e "s/\..*$//")_ip_address.txt"
 
-chmod 644 "$ip_file"
-my_ip=$(head "$ip_file")
-
-echo "my ip is [$my_ip]"
-
-# send the file over to the server.
+# go over to the server and write a file recording our IP address.
 # note that the local_user here is expected to have a certificate that
 # gets us access to the server.  this needs to be on the local machine
-# for sftp to run without a login prompt.
-sudo -u $local_user sftp $username@$server <<eof
-mkdir gen
-cd gen
-put $ip_file $(hostname | sed -e "s/\..*$//")_ip.txt
+# to enable ssh to run without a login prompt.
+sudo -u $local_user ssh $remote_user@$server <<eof
+  if [ ! -d gen ]; then mkdir gen; fi
+  cd gen
+  echo "\$SSH_CLIENT" | awk '{ print \$1; }' >$ip_file
 eof
 
-\rm -f "$ip_file"
-
-popd
-