]> Frank Brehm's Git Trees - pixelpark/pp-admin-tools.git/commitdiff
Checking dirs in bin/backup-pgsql.sh
authorFrank Brehm <frank.brehm@pixelpark.com>
Tue, 28 May 2019 13:24:35 +0000 (15:24 +0200)
committerFrank Brehm <frank.brehm@pixelpark.com>
Tue, 28 May 2019 13:24:35 +0000 (15:24 +0200)
bin/get-k8s-master-configs

index 0905b8d59f520b8aef1c0078de46611a670e6e47..279d79350aff55bb25db327ab9d4394554a14312 100755 (executable)
@@ -241,6 +241,101 @@ error() {
     echo -e " ${RED}*${NORMAL} [$(my_date)] [${BASENAME}:${RED}ERROR${NORMAL}]: $@" >&2
 }
 
+#------------------------------------------------------------------------------
+MKDIR() {
+    local cmd="mkdir"
+    if [[ "${VERBOSE}" == "y" ]] ; then
+        cmd+=" --verbose"
+    fi
+    eval ${cmd} "$@"
+}
+
+#------------------------------------------------------------------------------
+CHMOD() {
+    local cmd="chmod"
+    if [[ "${VERBOSE}" == "y" ]] ; then
+        cmd+=" --verbose"
+    fi
+    eval ${cmd} "$@"
+}
+
+#------------------------------------------------------------------------------
+CHOWN() {
+    local cmd="chown"
+    if [[ "${VERBOSE}" == "y" ]] ; then
+        cmd+=" --verbose"
+    fi
+    eval ${cmd} "$@"
+}
+
+#------------------------------------------------------------------------------
+CHGRP() {
+    local cmd="chgrp"
+    if [[ "${VERBOSE}" == "y" ]] ; then
+        cmd+=" --verbose"
+    fi
+    eval ${cmd} "$@"
+}
+
+#------------------------------------------------------------------------------
+check_home_dirs() {
+
+    local my_user_home="$1"
+    local my_user="$2"
+    local my_group="$3"
+
+    local k8s_dir="${my_user_home}/${REL_K8S_CFGDIR}"
+
+    debug "Checking directories '${my_user_home}' and '${k8s_dir}' ..."
+
+    if [[ -z "${my_user_home}" ]] ; then
+        error "Could not evaluate \$HOME of user '${RED}${my_user}${NORMAL}'."
+        return 6
+    fi
+
+    if [[ ! -e "${my_user_home}" ]] ; then
+        error "Directory '${RED}${my_user_home}${NORMAL}' does not exists."
+        return 6
+    fi
+
+    if [[ ! -d "${my_user_home}" ]] ; then
+        error "Path '${RED}${my_user_home}${NORMAL}' exists, but is not a directory."
+        return 6
+    fi
+
+    if [[ -e "${k8s_dir}" ]] ; then
+        MKDIR -p "${k8s_dir}"
+    else
+        if [[ ! -d "${k8s_dir}" ]] ; then
+            error "Path '${RED}${k8s_dir}${NORMAL}' exists, but is not a directory."
+            return 6
+        fi
+    fi
+
+    local dir_owner=$( stat --printf="%U" "${k8s_dir}" )
+    local dir_group=$( stat --printf="%G" "${k8s_dir}" )
+    local dir_mode=$( stat --printf="%a" "${k8s_dir}" )
+    debug "Directory '${k8s_dir}' current: owner='${dir_owner}', group='${dir_group}', mode='${dir_mode}'"
+
+    if [[ "${dir_owner}" != "${my_user}" ]] ; then
+        info "Setting owner of '${k8s_dir}' to '${my_user}'."
+        CHOWN "${my_user}" "${k8s_dir}"
+    fi
+
+    if [[ "${dir_group}" != "${my_group}" ]] ; then
+        info "Setting group of '${k8s_dir}' to '${my_group}'."
+        CHGRP "${my_group}" "${k8s_dir}"
+    fi
+
+    if [[ "${dir_mode}" != "700" ]] ; then
+        info "Setting mode of '${k8s_dir}' to 0700."
+        CHMOD "0700" "${k8s_dir}"
+    fi
+
+    return 0
+
+}
+
 #------------------------------------------------------------------------------
 get_config() {
 
@@ -261,8 +356,12 @@ get_config() {
     debug "URL to get the config: '${url}'."
 
     local user_home=$( getent passwd "${user}" | head -n 1 | awk -F: '{print $6}' )
-    debug "Home diectory of user '${user}': '${user_home}'"
-
+    debug "Home directory of user '${user}': '${user_home}'"
+    if check_home_dirs "${user_home}" "${user}" "${group}" ; then
+        :
+    else
+        continue
+    fi
 
 }