Bash 在Centos服务器上的shell脚本中自动执行git推送和提交

Bash 在Centos服务器上的shell脚本中自动执行git推送和提交,bash,shell,centos,Bash,Shell,Centos,我正在实现一个shell脚本,该脚本将备份数据库,然后将sql文件推送到Github,我正在使用centos server。该项目位于/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_

我正在实现一个shell脚本,该脚本将备份数据库,然后将
sql
文件推送到Github,我正在使用centos server。该项目位于
/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

您可以通过使用
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
  • 您可以直接添加日期
    git commit-m“备份:'$(日期+%D%T”)”
    这样,
    date
    将与
    git log的输出相同
  • 检查命令是否存在的其他方法是通过
    command
    hash
    查看

通过将
var=$CURRENT\u DATE=DATE+%D%T“
更改为
CURRENT\u DATE=$(DATE+%D%T”)