diff --git a/commands/first-install.sh b/commands/first-install.sh index 0e598f1..4b16021 100755 --- a/commands/first-install.sh +++ b/commands/first-install.sh @@ -1,7 +1,7 @@ #! /bin/bash # Install missing packets -PACKAGES_LIST="libnet-ldap-perl libxml-libxml-perl libgearman-client-perl" +PACKAGES_LIST="libnet-ldap-perl libxml-libxml-perl libgearman-client-perl libmailtools-perl libmail-sendmail-perl" if ! whereis dpkg > /dev/null 2> /dev/null then diff --git a/commands/manage-server.sh b/commands/manage-server.sh new file mode 100644 index 0000000..66bbe72 --- /dev/null +++ b/commands/manage-server.sh @@ -0,0 +1,26 @@ +#! /bin/sh + +cd $(dirname "$0") + +SRV_LIST="moore noyce hamano cpp" + +ACTIONS="start stop restart" + +for ACT in $ACTIONS +do + if [ -n "$1" ] && [ "$1" == "$ACT" ] + then + ACTION="$ACT" + break + fi +done + +if [ -z "$ACTION" ] +then + echo "Usage: $0 [$ACTIONS]" +fi + +for SRV in $SRV_LIST +do + ssh root@$SRV ~/liblerdorf/process/launch.sh "$ACTION" +done \ No newline at end of file diff --git a/process/launch.sh b/process/launch.sh index cb127cd..e585a81 100755 --- a/process/launch.sh +++ b/process/launch.sh @@ -30,44 +30,58 @@ launch_screen() if [ -z "$1" ] then - HOSTNAME=`/bin/hostname` + ACTION="restart" else - HOSTNAME="$1" + ACTION="$1" fi -# Kill old liblersorf screen sessions -$SU -c "$SCREEN -ls" intradmin | $GREP '[0-9]+\.lerdorf_[a-zA-Z0-9_-]+' | -while read LINE -do - SNAME=`echo $LINE | $SED "s/^[^0-9]*([0-9]+\.[^ \t]+).*$/\1/"` - $SU -c "$SCREEN -S \"$SNAME\" -X kill" intradmin -done +if [ -z "$2" ] +then + HOSTNAME=`/bin/hostname` +else + HOSTNAME="$2" +fi -case $HOSTNAME in +if [ "$ACTION" == "stop" ] || [ "$ACTION" == "restart" ] +then + # Kill old liblersorf screen sessions + $SU -c "$SCREEN -ls" intradmin | $GREP '[0-9]+\.lerdorf_[a-zA-Z0-9_-]+' | + while read LINE + do + SNAME=`echo $LINE | $SED "s/^[^0-9]*([0-9]+\.[^ \t]+).*$/\1/"` + $SU -c "$SCREEN -S \"$SNAME\" -X kill" intradmin + done +fi - cpp) - launch_screen "lerdorf_process_ldap_sync_ssh_keys_forge" "while true; do $PERL ~/liblerdorf/process/ldap/sync_ssh_keys_forge.pl; done" ~intradmin/.ssh/git - ;; - hamano) - launch_screen "lerdorf_process_ldap_sync_ssh_keys_git" "while true; do $PERL ~/liblerdorf/process/ldap/sync_ssh_keys_git.pl; done" ~intradmin/.ssh/git - ;; +if [ "$ACTION" == "start" ] || [ "$ACTION" == "restart" ] +then + case $HOSTNAME in - moore) - launch_screen "lerdorf_process_ldap_check_ssh_key" "while true; do $PERL ~/liblerdorf/process/ldap/check_ssh_key.pl; done" - launch_screen "lerdorf_process_ldap_sync_ssh_keys" "while true; do $PERL ~/liblerdorf/process/ldap/sync_ssh_keys.pl; done" - launch_screen "lerdorf_process_ldap_update_group" "while true; do $PERL ~/liblerdorf/process/ldap/update_group.pl; done" - launch_screen "lerdorf_process_ldap_update_user" "while true; do $PERL ~/liblerdorf/process/ldap/update_user.pl; done" - - launch_screen "lerdorf_process_files_intradata_get" "while true; do $PERL ~/liblerdorf/process/files/intradata_get.pl; done" - ;; - - noyce) - launch_screen "lerdorf_process_files_intradata_get" "while true; do $PERL ~/liblerdorf/process/files/intradata_get.pl; done" - ;; - - *) - echo "No process to launch for $HOSTNAME" >&2 - exit 1 - ;; -esac \ No newline at end of file + cpp) + launch_screen "lerdorf_process_ldap_sync_ssh_keys_forge" "while true; do $PERL ~/liblerdorf/process/ldap/sync_ssh_keys_forge.pl; done" ~intradmin/.ssh/git + ;; + + hamano) + launch_screen "lerdorf_process_ldap_sync_ssh_keys_git" "while true; do $PERL ~/liblerdorf/process/ldap/sync_ssh_keys_git.pl; done" ~intradmin/.ssh/git + ;; + + moore) + launch_screen "lerdorf_process_ldap_check_ssh_key" "while true; do $PERL ~/liblerdorf/process/ldap/check_ssh_key.pl; done" + launch_screen "lerdorf_process_ldap_sync_ssh_keys" "while true; do $PERL ~/liblerdorf/process/ldap/sync_ssh_keys.pl; done" + launch_screen "lerdorf_process_ldap_update_group" "while true; do $PERL ~/liblerdorf/process/ldap/update_group.pl; done" + launch_screen "lerdorf_process_ldap_update_user" "while true; do $PERL ~/liblerdorf/process/ldap/update_user.pl; done" + + launch_screen "lerdorf_process_files_intradata_get" "while true; do $PERL ~/liblerdorf/process/files/intradata_get.pl; done" + ;; + + noyce) + launch_screen "lerdorf_process_files_intradata_get" "while true; do $PERL ~/liblerdorf/process/files/intradata_get.pl; done" + ;; + + *) + echo "No process to launch for $HOSTNAME" >&2 + exit 1 + ;; + esac +fi