diff --git a/toolbox/backup.sh b/toolbox/backup.sh index 5bb3e0b..e12c6ec 100755 --- a/toolbox/backup.sh +++ b/toolbox/backup.sh @@ -1,15 +1,114 @@ #!/bin/bash -DIR=$1 +DIR_PATH=${1} +DIR=$(/usr/bin/basename ${DIR_PATH}) +LOG="${DIR}.log" +TIMESTAMP=$(/usr/bin/date +%Y/%m/%d' '%H:%M:%S) -[ $# -lt 1 ] && echo "Directory argument is missing" && exit -[ $# -gt 1 ] && echo "Too many arguments" && exit -[ ! -d $DIR ] && echo "Directory ${DIR} does not exist" && exit +# +# show to screen also and write to file +# +function log() { + echo -e "\e[96m`date +'%d/%m/%Y %H:%M:%S'`\e[39m ${1}" + echo -e "`date +'%d/%m/%Y %H:%M:%S'` ${1}" >> $LOG +} -echo -ne " 🔎 Verify file" -bzip2 -tv $TAR -[ $? -ne 0 ] && "Cannot verify $TAR" && exit +# +# database - get credentials +# +function get_db_credentials() { + SETTINGS=$(find ${DIR} -name settings.php | grep default) + DATABASE=$(cat $SETTINGS | tr -d ' ' | grep "^'database'" | awk -F\' '{print $4}') + USERNAME=$(cat $SETTINGS | tr -d ' ' | grep "^'username'" | awk -F\' '{print $4}') + PASSWORD=$(cat $SETTINGS | tr -d ' ' | grep "^'password'" | awk -F\' '{print $4}') -./db -e ${DIR} -tar -cjpf ${DIR}.tar.bz2 ${DIR} ${DIR}.* -ls -l ${DIR}.tar.bz2 --color=auto + [[ -z "${SETTINGS}" ]] && log "Empty variable SETTINGS" && return 1 + [[ -z "${DATABASE}" ]] && log "Empty variable DATABASE" && return 1 + [[ -z "${USERNAME}" ]] && log "Empty variable USERNAME" && return 1 + [[ -z "${PASSWORD}" ]] && log "Empty variable PASSWORD" && return 1 + + log "SETTINGS: ${SETTINGS}" + log "DATABASE: ${DATABASE}" + log "USERNAME: ${USERNAME}" + log "PASSWORD: ${PASSWORD}" + + return 0 +} + +# +# database - verify credentials +# +function verify_db_credentials() { + mysql -u"${USERNAME}" -p"${PASSWORD}" --batch --skip-column-names -e "SHOW DATABASES;" | grep "${DATABASE}" > /dev/null; + + if [ $? -ne 0 ];then + log "Verify database credentials [FAIL]" + return 1 + fi + + log "Verify database credentials [ OK ]" + return 0 +} + +# +# database - export data +# +function export_db() { + mysqldump -u"${USERNAME}" -p"${PASSWORD}" ${DATABASE} > ${DATABASE}.sql + + if [ $? -ne 0 ];then + log "Export database [FAIL]" + return 1 + fi + + log "Export database [ OK ]" + return 0 +} + +# +# Check the path +# +function check_path() { + [ ! -d ${DIR} ] && log "${TIMESTAMP} ${DIR} does not exist" && return 1 + [ ! -f ${DIR}/web/sites/default/settings.php ] && \ + [ ! -f ${DIR}/sites/default/settings.php ] && log "${TIMESTAMP} Cannot find setting.php" && return 1 + return 0 +} + +# +# Create tarball +# +function create_tarball() { + log "Create backup-${DIR}.tar.gz" + tar -czpf "backup-${DIR}.tar.gz" "${DIR}" "${DIR}.sql" + [ $? -ne 0 ] && return 1 + return 0 +} + +function create_checksum() { + log "Create backup-${DIR}-md5sum checksum" + CHECKSUM=$(md5sum backup-${DIR}.tar.gz | awk '{print $1}' ) + echo ${CHECKSUM} > "backup-${DIR}.md5sum" +} + +function main () { + if check_path; then + if get_db_credentials; then + if verify_db_credentials; then + if export_db; then + if create_tarball; then + create_checksum + fi + fi + fi + fi + fi +} + +[ ${#} -lt 1 ] && log "${TIMESTAMP} Directory argument is missing" && return 1 +[ ${#} -gt 1 ] && log "${TIMESTAMP} Too many arguments" && return 1 + +main + +ls -lh backup-${DIR}.tar.gz --color=auto +ls -lh backup-${DIR}.md5sum --color=auto diff --git a/toolbox/copy.sh b/toolbox/copy.sh index 687673e..ead8619 100755 --- a/toolbox/copy.sh +++ b/toolbox/copy.sh @@ -10,7 +10,6 @@ BB="\e[1;34m" BW="\e[1;97m" E="\e[00m" - DBUSER="root" DBPASS="1234" @@ -30,8 +29,7 @@ echo read -p "Note for destination $DST.log: " NOTE echo - -echo -ne " 🍄 Copy files from $SRC to $DST" +echo -ne " 📦 Copy files from $SRC to $DST" cp -rp $SRC $DST [ -f "$SRC.copy.log" ] && cp $SRC.copy.log $DST.copy.log echo >> $DST.copy.log @@ -70,11 +68,6 @@ fi sed -i "s/$SRC/$DST/g" $CONFIG log $? -# echo -ne " 🍒 link html to $DST" -# unlink /var/www/html -# ln -s /var/www/sites/$DST /var/www/html -# if [ $? = 0 ]; then ok; else fail; fi - echo ls -l --color=auto /var/www/site[0123456789] echo diff --git a/toolbox/info.sh b/toolbox/info.sh index 3808942..2ccfeea 100755 --- a/toolbox/info.sh +++ b/toolbox/info.sh @@ -36,12 +36,11 @@ NAME=$(echo $1 | tr -d '^\./') # cd ../.. # fi echo "
"
-
COUNT=$(vendor/drush/drush/drush route | grep "/api/" | wc -l)
echo
echo -e "🌐 GET endpoints: ${COUNT}"
echo
-vendor/drush/drush/drush route | grep "/api/" | awk {'print $2'} | sed "s/'//g"
+vendor/drush/drush/drush route | grep "/api/" | awk {'print $2'} | sed "s/'//g" | sort
# if [[ -f ./web/modules/custom ]]; then
# cd ./web/modules/custom