Ik wil veranderingen in een bepaalde directory automatisch syncen naar een andere directory en heb daarvoor een simpel scriptje gemaakt die precies doet wat het moet doen:
Bash:
Echter wil ik dit als een gewone gebruiker (mezelf) uitvoeren, en heb daartoe rsync aan sudoers toegevoegd. Nu werkt sudo rsync ook zonder een wachtwoord in te voeren.
Maar wat schetst mijn verbazing, het script (alleen sudo toegevoegd):
Bash:
Ik snap de logica niet. Wie kan me vertellen waarom dit gebeurt en hoe ik het krijg zoals het zonder sudo werkt, gewoon één event is code één keer uitvoeren?
(Note: Er is geen shellscript color coding daarom maar even pascal gekozen.
)
Bash:
Delphi:
1
2
3
4
| #!/usr/bin/env bash inotifywait -m -r --format '%w%f' -e modify -e move -e create -e delete /var/test | while read line; do rsync -ah --del --progress --stats --update "$line" "/home/test/" done |
Echter wil ik dit als een gewone gebruiker (mezelf) uitvoeren, en heb daartoe rsync aan sudoers toegevoegd. Nu werkt sudo rsync ook zonder een wachtwoord in te voeren.
Maar wat schetst mijn verbazing, het script (alleen sudo toegevoegd):
Bash:
Delphi:
flipt helemaal als er een inotify event binnenkomt! Het rsync commando wordt nonstop oneindig maal achter elkaar uitgevoerd. Dit gebeurt zo snel dat het bijna onmogelijk is om er een Ctrl+C tussen te krijgen.1
2
3
4
| #!/usr/bin/env bash inotifywait -m -r --format '%w%f' -e modify -e move -e create -e delete /var/test | while read line; do sudo rsync -ah --del --progress --stats --update "$line" "/home/test/" done |
Ik snap de logica niet. Wie kan me vertellen waarom dit gebeurt en hoe ik het krijg zoals het zonder sudo werkt, gewoon één event is code één keer uitvoeren?
(Note: Er is geen shellscript color coding daarom maar even pascal gekozen.

[ Voor 5% gewijzigd door Sando op 29-12-2012 10:50 ]
🇪🇺 Buy from EU (GoT)