Автоматизация git pu sh и фиксация в сценарии оболочки на сервере Centos - PullRequest
0 голосов
/ 18 марта 2020

Я реализую сценарий оболочки, который будет выполнять резервное копирование базы данных, а затем pu sh файл sql на Github, я использую сервер Centos, проект находится на /opt/server-scripts/backup.sh. Как мне это автоматизировать?

Вот моя реализация:

#!/bin/bash/

var=$CURRENT_DATE=date +"%D %T"

docker exec 3856a8e52031 /usr/bin/mysqldump -u root --password=cvxxx  django_mysql_docker > backup.sql


# Git Push 

GIT=$(which git)
REPO_DIR=/opt/server-scripts/
cd ${REPO_DIR} || exit
${GIT} add --all .
${GIT} commit -m "backup:" + "'$CURRENT_DATE'"
${GIT} https://pmutua:xxxxx@github.com/pmutua/sqlbackup.git master

1 Ответ

0 голосов
/ 18 марта 2020

Вы можете проверить, установлена ​​ли команда / исполняемый файл в вашей переменной PATH, одним способом, используя type

if type -P git >/dev/null; then
  echo 'git is installed.'
fi

Если вы хотите отменить результат, добавьте !

if ! type -P git >/dev/null; then
  echo 'git is not installed.'
fi

Чтобы добавить это к вашему сценарию.

#!/usr/bin/env bash


docker exec 3856a8e52031 /usr/bin/mysqldump -u root --password=cvxxx  django_mysql_docker > backup.sql

if ! type -P git >/dev/null; then   ##: Check if git is not installed
  echo 'git is not installed.' >&2  ##: print an error message to stderr
  exit 1                            ##: Exit with an error
fi

# Git Push 

CURRENT_DATE=$(date +"%D %T")  ##: Assign the output of date in a variable 
REPO_DIR=/opt/server-scripts/
cd "${REPO_DIR}" || exit
git add --all .
git commit -m "backup: '$CURRENT_DATE'"
git push https://pmutua:xxxxx@github.com/pmutua/sqlbackup.git master
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...