I have 2 servers syncing some directories with an rsync script. They are in different countries. The rsync script is executed on Server#1. I am using 'fswatch' to execute the script automatically, when the directory is modified.
Here is where I am looking for help:
After 'fswatch' see's a directory change, it triggers my rsync script on Server#1. I need the rsync script to look at the Server#2 and check a file which contains the string "open" or "closed". If it says "closed", I want the rsync to script to execute. If it says "open", I don't want the rsync script to execute, but rather wait x seconds and check the file again (the file will eventually change to "closed", allowing the script to run).
Any insight on structuring this is greatly appreciated, I haven't figured out how to setup the loop of 'check file/don't execute/wait/check again' logic.
---------- Post updated at 08:06 PM ---------- Previous update was at 06:44 PM ----------
I think I found the logic. Can somebody tell me how to get this to time out after say 100 tries?
Code:
STATUSFILE=/Users/patrick/Desktop/temp/remoteserverstatus
until grep -q closed "$STATUSFILE"; do
echo ‘waiting for sever to finish’; sleep 3
done
echo ‘running script’
Last edited by sudo; 05-16-2014 at 09:25 PM..
Reason: Removing code
Sorry for such a dreadful title, but I'm not sure how to be more descriptive. I'm hoping some of the more gurutastic out there can take a look at a solution I came up with to a problem, and advice if there are better ways to have gone about it.
To make a long story short around 20K pieces of... (2 Replies)
I'm trying to understand if it's possible to create a set of variables that are numbered based on another variable (using eval) in a loop, and then call on it before the loop ends.
As an example I've written a script called question (The fist command is to show what is the contents of the... (2 Replies)
Hi Im running this script, which is supposed to find the max value build some tables and then stop running once all the tables are built. Thing is , it keeps assigning a null value to $h and then $g is null so it keep building tables i.e. testupdateNUL. How can I stop this? Here is what I have:
... (4 Replies)
Hi all
Sorry for the basic question, but i am writing a shell script to get around a slightly flaky binary that ships with one of our servers. This particular utility randomly generates the correct information and could work first time or may work on the 12th or 100th attempt etc !.... (4 Replies)
Hi,
hope I am posting in the right section.
My problem is that I have 2 or more arguments passed and I want to check if the arguments passed exists or not.
The first argument should not exist and the remaining others should exist.
example:
./shells.sh argument1 argument2 argument3
... (5 Replies)
Hi, I was debating if I should put this in the dummies or scripts section, I apologize in advance if I chose poorly.
Fairly new to Unix and BASH scripting but I thought I made it fairly well given my limited understanding. However, the output indicates that it's looping and I'm ending up with a... (5 Replies)
Hello All,
Maybe I'm Missing something here but I have NOOO idea what the heck is going on with this....?
I have a Variable that contains a PATTERN of what I'm considering "Illegal Characters". So what I'm doing is looping
through a string containing some of these "Illegal Characters". Now... (5 Replies)
Hi,
I want to read file multiple times. Right now i am using while loop but that is not working.
ex.
While read line
do
while read line2
do
echo stmt1
#processing some data based on data.,
done < file2.txt
done < file1.txt # This will have 10... (4 Replies)
Hi all,
i developed a script to measure the uptime of a process in a Solaris 10/11 environments.
All is well, but i came across a situation where there are multiple processes of the same name. Basically i have the following result file:
beVWARS 13357 19592122
beVWARS 14329 19591910... (4 Replies)
Discussion started by: nms
4 Replies
LEARN ABOUT DEBIAN
slack
slack(8) System Manager's Manual slack(8)NAME
slack - Sysadmin's lazy autoconfiguration kit
SYNOPSIS
slack [option ...] [role ...]
DESCRIPTION
slack is a master command which coordinates the activities of its backends, which variously:
o determine the list of roles to be installed on this server
o create a local cached copy of the role files from the central repository
o merge file trees from subroles into a single, unified tree
o install files onto the local filesystem
o run scripts before and after installation
Options you give to slack will be generally passed along to the backends where relevant.
OPTIONS -h, --help
Print a usage statement.
--version
Print the version and exit.
-v, --verbose
Increase verbosity. Can be specified multiple times.
--quiet
Don't be verbose (Overrides previous uses of --verbose).
-C, --config FILE
Use the specfied FILE for configuration instead of the default, /etc/slack.conf.
-s, --source DIR
Source directory for slack files
-e, --rsh COMMAND
Remote shell for rsync
-c, --cache DIR
Local cache directory for slack files
-t, --stage DIR
Local staging directory for slack files
-r, --root DIR
Root destination for slack files
--no-sync
Skip the slack-sync step (useful if you're pushing stuff into the CACHE outside slack).
--no-files
Don't install any files in ROOT, but tell rsync to print what it would do.
--no-scripts
Don't run scripts
-n, --dry-run
Same as --no-files --no-scripts (CACHE, STAGE will still be updated)
--role-list
Role list for slack-getroles(8).
-b, --backup
Make backups of existing files in ROOT that are overwritten. This option defaults to on if it is not set to 0 in a config file or
disabled with --nobackup on the command line.
--backup-dir
Put backups from the --backup option into this directory.
-H, --hostname HOST
Pretend to be running on HOST, instead of the name given by gethostname(2).
--preview MODE
Do a diff of scripts and files before running them. MODE can be one of 'simple' or 'prompt' (See PREVIEW MODES, below).
--diff PROG
Use this diff program for previews.
--sleep TIME
Randomly sleep between 1 and TIME seconds before starting operations. Useful in crontabs.
PREVIEW MODES
Preview functionality is new in slack 0.14.0. I haven't quite worked out how things will work, so this usage is somewhat subject to change
in future versions. I thought I would try it this way and see how people like it.
In 'simple' mode, after syncing and staging the files directory, slack will present a diff of the files and scripts. In this mode, slack
will not run the preinstall or fixfiles scripts, and because of this, it may provide some false output about permissions changes to files.
In 'prompt' mode, after syncing and staging the files directory, slack will diff the script directory. If there are differences, slack
will present them to you and ask you if you want to continue. If you say no, it will exit. If you say yes, it will stage the scripts
directory, run the preinstall and fixfiles scripts, and then diff the files in the stage with those in the root. If there are differences,
slack will present them to you and ask you if you want to continue. If you say no, it will exit. If you say yes, it will install the
files and run the postinstall script.
So, the 'simple' mode is easy to use, and will be accurate if you don't use fixfiles. The 'prompt' mode will be accurate if you use fix-
files, but requires some interaction.
Why can't we just have one mode that works with fixfiles and requires no interaction? Well, that would require slack to understand what
your free-form fixfiles executable was going to do, which would either require some kind of universe simulator or would require you to
write your fixfiles in a less free-form way, which would make slack less like slack.
EXAMPLES
To install all the roles configured in the role list for a server:
slack
To install a specific role:
slack rolename
To test a new role before checking in the changes:
slack --source user@workstation:/home/user/.../slack rolename
To avoid killing your master server when calling from cron:
slack --sleep 3600
FILES
/etc/slack.conf
SEE ALSO slack.conf(5), rsync(1)Administrative commands 2004-10-22 slack(8)