Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
W
Warden
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Pavel Valach
Warden
Commits
a8ccc718
Commit
a8ccc718
authored
11 years ago
by
Tomáš Plesník
Browse files
Options
Downloads
Patches
Plain Diff
uprava podle Auditu shellovych skriptu
parent
d6077d9a
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/warden-server/sh/update.sh
+66
-105
66 additions, 105 deletions
src/warden-server/sh/update.sh
with
66 additions
and
105 deletions
src/warden-server/sh/update.sh
+
66
−
105
View file @
a8ccc718
...
...
@@ -2,7 +2,7 @@
#
# update.sh
#
# Copyright (C) 2011-201
3
Cesnet z.s.p.o
# Copyright (C) 2011-201
4
Cesnet z.s.p.o
#
# Use of this source is governed by a BSD-style license, see LICENSE file.
...
...
@@ -10,19 +10,18 @@
VERSION
=
"2.2"
#-------------------------------------------------------------------------------
#
FUNCTIONS
#
Script functions
#-------------------------------------------------------------------------------
usage
()
{
echo
"Usage:
`
basename
$0
`
[
-d <directory>
]
[-hV]"
echo
"-d <directory> destination directory
(default: /opt)
"
echo
"Usage:
${
0
##*/
}
-d <directory> [-hV]"
echo
"-d <directory> destination directory
of Warden server
"
echo
"-h print this help"
echo
"-V print script version number and exit"
echo
echo
"Example:
#
./
`
basename
$0
`
-d /opt
"
echo
"Example:
$
./
${
0
##*/
}
-d /opt/warden-server
"
echo
echo
"Note: You must be root for running this script."
echo
" For more information about update process, see README file (section Update)."
echo
"For more information about update process, see README file (section Update)."
echo
exit
0
}
...
...
@@ -30,7 +29,7 @@ usage()
version
()
{
echo
"
`
basename
${
0
}
`
- current version is
$VERSION
"
echo
"
${
0
##*/
}
- current version is
$VERSION
"
exit
0
}
...
...
@@ -38,9 +37,9 @@ version()
err
()
{
echo
"FAILED!"
cat
$err
rm
-
r
f
$err
rm
-
r
f
$backup_dir
cat
"
$err
"
rm
-f
"
$backup
"
rm
-f
"
$err
"
echo
echo
"Update from
$old_package_version
to
$package_version
package FAILED!!!"
exit
1
...
...
@@ -54,44 +53,42 @@ errClean()
rm
-rf
${
server_path
}
/
*
>
/dev/null 2>&1
cp
-R
${
backup_dir
}
/
*
$server_path
cat
$err
rm
-rf
$err
$backup
_dir
rm
-rf
$err
$backup
echo
echo
"Update from
$old_package_version
to
$package_version
package FAILED!!!"
exit
1
}
rootChck
()
{
if
[
$UID
-ne
0
]
;
then
echo
"You must be root for running this script!"
exit
1
fi
}
paramsChck
()
{
if
[
-z
$prefix
]
;
then
if
[
-z
"
$basedir
"
]
;
then
echo
"Parameter -d <directory> is not set!"
exit
1
fi
}
obtainPackageVersion
()
#-------------------------------------------------------------------------------
# Installation functions
#-------------------------------------------------------------------------------
oldPackageChck
()
{
if
[
-f
$old_package_version_file
]
;
then
old_package_version
=
`
cat
$old_package_version_file
`
echo
-n
"Checking previous Warden server installation ... "
old_package_version_file
=
$(
find
"
$basedir
"
-name
package_version
)
if
[
-f
"
$old_package_version_file
"
]
;
then
old_package_version
=
$(
<
"
$old_package_version_file
"
)
if
[
"
$old_package_version
"
==
"
$package_version
"
]
;
then
echo
"Sorry, but
$package_version
package is already installed!"
exit
1
fi
else
echo
"Sorry, but Warden server package is not installed!"
echo
"For installation of Warden server package please use install.sh
script.
"
echo
"Sorry, but Warden server package is not
yet
installed!"
echo
"For installation of Warden server package please use install.sh"
exit
1
fi
echo
"OK"
}
...
...
@@ -102,68 +99,42 @@ perlChck()
echo
"OK"
else
echo
"FAILED!"
echo
echo
"Error: Perl interpreter is not installed!"
exit
1
fi
}
rsyncChck
()
{
echo
-n
"Checking Rsync ... "
if
which rsync 1> /dev/null
;
then
echo
"OK"
else
echo
"FAILED!"
echo
"Error: Rsync is not installed!"
exit
1
fi
}
modulesChck
()
{
for
module
in
${
modules
[@]
}
;
sed
'/^use [A-Z]/!d; /Warden/d'
$(
find
"
${
dirname
}
"
-type
f
)
2>/dev/null |
cut
-f
2
-d
" "
|
sed
's/;//'
|
sort
-u
|
\
while
read
module
;
do
echo
-n
"Checking
$module
module ... "
if
perl
-e
"use
$module
"
2>
$err
;
then
echo
"OK"
else
err
fi
perl
-e
"use
$module
"
2>
"
$err
"
&&
echo
"OK"
||
err
done
}
wardenDirChck
()
{
echo
-n
"Checking Warden server directory ... "
if
[
!
-d
$server_path
]
;
then
echo
"FAILED!"
ls
$server_path
exit
1
else
echo
"OK"
fi
echo
-n
"Checking Warden server directory ... "
if
[
[
!
-d
"
$basedir
"
]]
&&
[[
!
-w
"
$basedir
"
]
]
;
then
echo
"FAILED!"
echo
"No version of Warden server is not installed!"
exit
1
else
echo
"OK"
fi
}
backup
()
{
echo
-n
"Backing-up Warden server directory ... "
mkdir
$backup_dir
if
cp
-R
${
server_path
}
/
*
$backup_dir
2>
$err
;
then
echo
"OK"
else
err
fi
}
obtainWardenUser
()
{
echo
-n
"Obtaining Warden server directory owner ... "
if
user
=
`
stat
-c
%U
$server_conf_file
`
2>
$err
;
then
echo
-n
"Making Warden server backup ... "
mkdir
$backup
if
cp
-R
"
${
basedir
}
/"
*
"
$backup
"
2>
"
$err
"
;
then
echo
"OK"
else
err
...
...
@@ -173,14 +144,8 @@ obtainWardenUser()
updateWardenDir
()
{
echo
-n
"Updating Warden server directory ... "
if
rsync
-q
--recursive
--archive
--delete
--exclude
=
'etc'
--exclude
=
'sh'
${
dirname
}
/warden-server
$prefix
2>
$err
;
then
echo
"OK"
else
errClean
fi
cp
${
dirname
}
/warden-server/etc/package_version
$etc
cp
${
dirname
}
/uninstall.sh
$server_path
echo
-n
"Updating Warden server ... "
}
...
...
@@ -328,65 +293,61 @@ $valid_strings" > $server_conf_file 2> $err; ret_val=`echo $?`
# MAIN
#-------------------------------------------------------------------------------
# list of used Perl modules
modules
=(
SOAP::Lite SOAP::Transport::HTTP DBI DBD::mysql Format::Human::Bytes Sys::Syslog File::Basename Net::CIDR::Lite DateTime Getopt::Std Switch IO::Socket::SSL MIME::Base64 Crypt::X509 Carp FindBin
)
# read input
while
getopts
"d:Vh"
options
;
do
case
$options
in
d
)
prefix
=
$OPTARG
;;
case
"
$options
"
in
d
)
basedir
=
"
$OPTARG
"
;;
h
)
usage
;;
V
)
version
;;
*
)
usage
;;
esac
done
# r
oot t
es
t
rootChck
# r
emove last char (slash) from name of directori
es
[[
"
$basedir
"
==
*
/
]]
&&
basedir
=
"
${
basedir
%?
}
"
# params test
paramsChck
# create variables
dirname
=
`
dirname
$0
`
package_version
=
`
cat
${
dirname
}
/warden-server/etc/package_version
`
[[
$prefix
==
*
/
]]
&&
prefix
=
"
${
prefix
%?
}
"
# remove last char (slash) from prefix
server_path
=
"
${
prefix
}
/warden-server"
etc
=
"
${
server_path
}
/etc"
doc
=
"
${
server_path
}
/doc"
old_package_version_file
=
"
${
etc
}
/package_version"
apache_conf_file
=
"
${
etc
}
/warden-apache.conf"
server_conf_file
=
"
${
etc
}
/warden-server.conf"
# set variables
err
=
"/tmp/warden-err"
backup_dir
=
"/tmp/warden-server-backup"
backup
=
"/tmp/warden-server-backup"
hostname
=
$(
hostname
-f
||
echo
"unspecified.server"
)
dirname
=
${
0
%/*
}
doc
=
"
${
basedir
}
/doc"
etc
=
"
${
basedir
}
/etc"
server_conf
=
"
${
etc
}
/warden-server.conf"
apache_conf
=
"
${
etc
}
/warden-apache.conf"
watchdog_conf
=
"
${
etc
}
/warden-watchdog.conf"
server_conf_tmpl
=
"
${
dirname
}
/etc/warden-server.conf.tmpl"
apache_conf_tmpl
=
"
${
dirname
}
/etc/warden-apache.conf.tmpl"
watchdog_conf_tmpl
=
"
${
dirname
}
/etc/warden-watchdog.conf.tmpl"
package_version
=
$(
<
"
${
dirname
}
/etc/package_version"
)
manifest
=
"
${
dirname
}
/doc/MANIFEST"
# obtain version of old warden server
obtainPackageVersion
echo
echo
"------------------------- Dependencies check-in -------------------------"
# check warden server directory
wardenDirChck
#
oldPackageChck
# Perl interpreter test
perlChck
# Rsync availability test
rsyncCheck
# Perl modules test
modulesChck
echo
echo
"------------------------- Update process --------------------------------"
# check warden server directory
wardenDirChck
# backup old warden server installation
backup
# obtain current warden server user
obtainWardenUser
# make warden server directory
updateWardenDir
...
...
@@ -406,6 +367,6 @@ echo "Please follow post-update steps in ${doc}/UPDATE!"
echo
# cleanup section
rm
-rf
$err
$backup
_dir
rm
-rf
$err
$backup
exit
0
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment