Ich sehe mir viele Antworten an zu diesem Thema , aber hier stimmt etwas nicht, lassen Sie mich erklären.
Ich erstelle dieses Skript, um meine cron
sauberer :)
#!/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
Dann füge es bei meinem cron hinzu, valter.silva's cron
, nicht meine root cron
:
00 * * * * /home/valter.silva/Development/git/valter/scripts/git/sync.sh
Starten Sie meinen Cron neu
sudo service cron restart
cron stop/waiting
cron start/running, process 6047
Und .. nichts passiert ..
Aber wenn ich mein Skript in der Befehlszeile ausführe, funktioniert alles einwandfrei. Ich weiß mit Sicherheit, dass manchmal, wenn Sie nicht den gesamten Pfad in Cron-Skripten angeben, dies nicht richtig funktioniert. Und das sollte ich mit meinem Cron machen, nicht mit Roots Cron.
Also, was ist hier los? Irgendwelche Ideen ? Vielen Dank!
aktualisieren
Ich folge dem Vorschlag von Terdon, um die Operation zu protokollieren, aber es scheint, dass alles in Ordnung ist, aber nicht die push
aber verarbeiten. Warum ?
[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)
crontab -e
)? Was machtcrontab -l
Bericht? Sie können versuchen, hinzuzufügenSHELL=/bin/bash
undMAILTO="valter.silva"
in die Crontab Ihres Benutzers. Insbesondere letzteres kann zu Fehlermeldungen in Ihrer lokalen Mail führen (/var/spool/mail/valter.silva
), wenn das lokale Mailsystem funktioniert. Und meiner Meinung nach gibt es keine Notwendigkeit, den neu zu startencron
Bedienung.crontab -e
nichtsudo crontab -e
. Dascrontab -l
ist genau dieser eintrag den ich poste, da ist nur dieser eintrag in meinem cron.Antworten:
Ich bin kein Git-Meister, aber ich mache einige Git-Tests auf meinem lokalen Git-Test-Repo. Wenn ich Git Push laufen lasse, dann ist die Ausgabe:
F: Haben Sie das Remote-Repository mit konfiguriert?
git remote add
Befehl? Wenn ja, versuchen Sie, git push mit dem Namen des Remote-Repositorys auszuführen. Wenn nein, konfigurieren Sie einen oder verwenden Sie git push mit der Remote-Repository-URL in der Befehlszeile (git push git://host.xz[:port]/path/to/repo.git/
).quelle
git remote add
, Ich werde es mir ansehen.Zusammenfassend habe ich die Links vereinfacht, damit sie besser lesbar sind, wenn jemand nach einer Antwort auf der Grundlage von sucht Huti's Blog Post .
Also für deine
sync.sh
Ich würde hinzufügen-u origin master
für den push:Stellen Sie sicher, dass Ihr Skript von bash ausgeführt werden kann:
Dann können Sie dem Text eine Zeile hinzufügen
/etc/crontab
:Starten Sie den Computer neu, damit der Cron-Job wirksam wird. Jetzt wird Ihr Skript jeden Tag um 18:01 Uhr ausgeführt. Wenn es keine Änderung gibt, wird nichts gepusht.
quelle
Warum sollten Sie damit rechnen, dass etwas passiert? Sie haben gesagt
cron
Stündliche Ausführung Ihres Skripts zur vollen Stunde. Wenn Sie Ihre Crontab um 13:02 Uhr geändert haben, wird bis 14:00 Uhr nichts passieren.Warten Sie eine Weile, bis die Zeit abgelaufen ist
XX:00
sollte Ihr Skript ausgeführt werden. Oh, und es besteht keine Notwendigkeit, neu zu startencron
wird die neue crontab gelesen und beim nächsten Start ausgeführt.Wenn Sie lange genug gewartet haben und Ihr Skript noch nicht ausgeführt wird, versuchen Sie, die Fehlerausgabe umzuleiten, um zu überprüfen, ob etwas passiert:
Versuchen Sie auch, einen Dummy-Cron-Job einzurichten, um festzustellen, ob dies funktioniert:
quelle