3

Я смотрю много ответов на эту тему, но здесь что-то не так, позвольте мне объяснить. Я создаю этот скрипт, чтобы сделать мой cron чище :)

#!/bin/bash

cd /home/valter.silva/Development/git/valter/ 
/usr/bin/git add -A 
/usr/bin/git commit -am "update `date`"
/usr/bin/git push

Затем добавьте это в мой cron, cron valter.silva's cron , а не мой root cron:

00 * * * * /home/valter.silva/Development/git/valter/scripts/git/sync.sh

Перезагрузите мой cron

sudo service cron restart
cron stop/waiting
cron start/running, process 6047

Ааа .. ничего не происходит ..

Но если я выполняю свой скрипт в командной строке, все работает нормально. Я точно знаю, что иногда, если вы не указали весь путь в cron, скрипты не будут работать правильно. И что для этого я должен использовать свой cron, а не root.

Так что здесь не так? Есть идеи ? Спасибо!

udpate

Я следую предложению Тердона, записываю в журнал операцию, но, похоже, все в порядке, но не процесс push . Зачем ?

[master ad5d001] update Fri Aug  9 11:00:01 BRT 2013
 9 files changed, 1224 insertions(+), 364 deletions(-)
 create mode 100644 scripts/centreon/4.answers~
 create mode 100644 scripts/centreon/6.importing database
 create mode 100644 scripts/centreon/6.importing database~
 create mode 100755 scripts/centreon/7.upgrade.sh
 create mode 100755 scripts/centreon/7.upgrade.sh~
 create mode 100644 scripts/centreon/8.answers
 create mode 100644 scripts/centreon/8.answers~
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)

3 ответа3

1

В общем, я упростила ссылки, чтобы они были более читабельными для тех, кто ищет ответ на основе поста в блоге Хути.

Поэтому для вашего sync.sh я бы добавил -u origin master для push:

#!/bin/bash

cd /home/valter/git-project/
/usr/bin/git add -A 
/usr/bin/git commit -am "Daily update"
/usr/bin/git push -u origin master

Убедитесь, что ваш скрипт может быть выполнен bash:

sudo chmod 765 ~/sync.sh

Затем вы можете добавить строку в /etc/crontab:

sudo nano /etc/crontab # To edit the file
01 18  *  *  * root  /home/valter/sync.sh

Обязательно перезагрузитесь, чтобы задание cron вступило в силу. Теперь ваш скрипт будет запускаться каждый день в 18:01. Если нет изменений, то ничего не будет выдвинуто.

1

Я не мастер git, но я делаю некоторые тесты git на своем локальном репозитории git test. Когда я запускаю git push, то получается:

fatal: No configured push destination.
Either specify the URL from the command-line or configure a remote repository using

git remote add <name> <url>

and then push using the remote name

git push <name>

Q: Вы настроили удаленный репозиторий с помощью команды git remote add ? Если да, попробуйте запустить git push с именем удаленного хранилища. Если нет, настройте его или используйте git push с URL-адресом удаленного хранилища в командной строке (git push git://host.xz[:port]/path/to/repo.git/ ).

0

Почему вы ожидаете, что что-то случится? Вы сказали cron запускать ваш скрипт каждый час, каждый час. Если вы изменили свой crontab, скажем, в 13:02, ничего не произойдет до 14:00.

Попробуйте подождать, пока время не достигнет XX:00 , ваш скрипт должен запуститься. О, и нет необходимости перезапускать cron , он прочитает новый crontab и запустит его при следующем запуске.

Если вы подождали достаточно долго, а ваш скрипт все еще не запущен, попробуйте перенаправить вывод ошибок, чтобы проверить, что происходит:

00 * * * * /home/valter.silva/Development/git/valter/scripts/git/sync.sh 2> /home/valter.silva/error.txt

Также попробуйте настроить фиктивное задание cron, чтобы увидеть, работает ли оно:

00 * * * * date > /home/valter.silva/date.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .