Skip to content
Snippets Groups Projects
Commit f81c72c2 authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

add readme

parent d2de5025
No related branches found
No related tags found
No related merge requests found
# onfilechange # onfilechange
A Shell script that watches a given file or multiple files.
If one of the watched file changes then a given command will be exxecuted.
It loops permanently; you need to stop it by Ctrl + C and/ or can
use it as systemd watcher daemon.
It uses stats for wide compatibility but prefers inotifywatch to
check a file change.
licence: Free software GNU GPL 3.0
Source: https://git-repo.iml.unibe.ch/open-source/onfilechange
## Installation
* Copy the bash script somewhere you like.
* set execute permissions `chmod 0755 onfilechange.sh`
## Usage
```
Parameters
-c [command]
command to execute on a file change
-f [filename(s)]
filenames to watch; separate multiple files with space and put all in quotes
-h
show this help
-i
force inotifywait command
-s
force stats command
-v
verbose mode; enable showing debug output
-w [integer]
for stats mode: wait time in seconds betweeen each test or on missing file; default: 5 sec
```
## Test on command line
To make a test on commandline touch a testfile `touch /tmp/mytestfile`.
The start the script with enabled debugging (-d) in a 2nd terminal:
`/usr/local/bin/onfilechange.sh -v -f "/tmp/mytestfile" -c 'echo "hello"'`
Each time you touch the testfile it should show "hello".
## Use as systemd service
In `/etc/systemd/system/` create a service config file **onfilechange-demo.service**
```
[Unit]
Description=Onfilechange edemo
Wants=multi-user.target
[Service]
ExecStart=/usr/local/bin/onfilechange.sh -f "/tmp/mytestfile" -c 'systemctl restart apache2'
Restart=on-failure
RestartSec=5s
SyslogIdentifier=onfilechange
User=root
Group=root
Type=simple
[Install]
WantedBy=multi-user.target
```
Check if the service exists `systemctl status onfilechange-demo`. If so you can start and stop it with `systemctl [start|stop] onfilechange-demo`
File mode changed from 100644 to 100755
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment