【问题标题】:php script to push site backup into git repositry once per week每周一次将站点备份推送到 git 存储库的 php 脚本
【发布时间】:2018-04-13 10:55:09
【问题描述】:

我想创建一个 php 脚本,将我的代码推送到 git 存储库中。

基本上我需要运行这三个命令

1 : git add -all
2 : git commit -m "code added"
3 : git push

在运行这些命令之前,我必须转到我想要推送代码的那个目录。而当时我们通过git推送的时候,我们必须输入用户名和密码,所以我也需要管理。

我还需要这个脚本每周自动运行一次。

我是怎么做到的。

感谢

【问题讨论】:

  • 如下所述,您不需要 PHP。您可以在 bash 脚本中执行此操作,并使用 cron 作业每周运行一次。

标签: php git github repository sh


【解决方案1】:

我认为没有必要为此开发一个 php 脚本。

您也可以制作一个 bash 脚本并将其放入每周执行此操作的 cron 作业中(这将处理自动化部分)

至于密码部分,我建议使用 ssh,然后将其推过去。您可以将 ssh 私钥添加到 github 域的 ssh 配置中,并将您的 pulic 密钥放入 github 本身。这将处理授权

【讨论】:

  • 首先创建一个可执行文件git.run。在目录 /path/working_directory 中打开一个名为 git.run 的文件。将以下命令复制到文件并保存。混帐添加。 curtime=date git commit -m "Automatic Backup @ $curtime" git push origin master 将 git.run 的权限改为可执行。 chmod +x git.run 用于自动化 crontab -e 它询问您最喜欢的编辑器。我用vim。将以下条目添加到文件中。 (i 用于插入,esc + : + wq 用于保存)。 0 0 * * 0 cd /path/working_dir && ./git.run 还可以吗?
  • -您应该将推送位置更改为存储库的 ssh 位置-生成 rsa 公钥和私钥-将您的公钥添加到 github-在 ssh 配置中添加您的私钥到 github.com 域-测试脚本是否在没有被 cronjob 调用的情况下工作
  • 我是 shell 脚本和 github 的新手,所以不明白我是如何管理密码部分的。我的意思是我如何生成 rsa 公钥和私钥。请告诉我我是怎么做到的。
  • here 是如何生成密钥的示例,here 是如何安装 ssh 身份的示例(主机可以只是 github.com 和主机名相同),和here 如何更改远程网址
  • 谢谢,我正在设置这个
【解决方案2】:

我正要说同样的话!!! 这是完全与基础设施相关的任务,因此 php 不是您应该使用的语言,因为它不是它的目的。准备一个 shell 脚本并为它配置你的 crontab。您可以将密码存储在某些具有特定权限访问的变量/配置文件中,或者通过使用基于 RSA 密钥的身份验证来更好地避免使用密码身份验证。

祝你好运!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 2011-09-20
    • 1970-01-01
    • 2011-03-14
    相关资源
    最近更新 更多