updated to specific CRONUSER variable
authorChris Koeritz <fred@gruntose.com>
Tue, 7 Feb 2017 00:00:23 +0000 (19:00 -0500)
committerChris Koeritz <fred@gruntose.com>
Tue, 7 Feb 2017 00:00:23 +0000 (19:00 -0500)
this decouples us from the USER variable, which cron doesn't provide to us anyway.

24 files changed:
infobase/configuration/cron/aa_cron_defaults.crontab
infobase/configuration/cron/backup_git_account.crontab
infobase/configuration/cron/backup_maildir.crontab
infobase/configuration/cron/backup_mysql_databases.crontab
infobase/configuration/cron/backup_photo_albums.crontab
infobase/configuration/cron/backup_serene_system.crontab
infobase/configuration/cron/backup_trac.crontab
infobase/configuration/cron/bookmarks_builder.crontab
infobase/configuration/cron/chkrootkit.crontab
infobase/configuration/cron/doxygen.crontab
infobase/configuration/cron/emit_crontab.crontab
infobase/configuration/cron/letsencrypt_renewal.crontab
infobase/configuration/cron/nechung_fortune.crontab
infobase/configuration/cron/opensim_restart.crontab
infobase/configuration/cron/pack_feisty_for_web.crontab
infobase/configuration/cron/process_check.crontab
infobase/configuration/cron/random_sound.crontab
infobase/configuration/cron/snarf_linux_configuration.crontab
infobase/configuration/cron/synch_and_swim_downstream.crontab
infobase/configuration/cron/tell_zooty_our_ip.crontab
infobase/configuration/cron/time_synch.crontab
infobase/configuration/cron/uptime_report.crontab
infobase/fortunes.dat
scripts/files/count_files.sh

index 41015fdc909b4fb41453a9a4faf5836b9f2b71c1..a91c88bcc52266c08de05f1e0a3ab4f8ce4a91f7 100644 (file)
@@ -4,10 +4,17 @@
 # cron default bits to add at top of crontab...
 # by fred t. hamster, GNU GPL v3 license.
 
-# these stanzas are assumed to be present in every one of the other cron
-# example files.  unfortunately there is no way to include cron files in other
-# cron files, so the functional parts here should just be pasted directly into
-# the user's crontab.
+# every one of the crontab examples in feisty meow depends on the the stanzas
+# below.  (unfortunately there is no way to include cron files in other cron
+# files, so the functional parts here should just be pasted directly into the
+# user's crontab at the top.)
+
+# set a user name for writing unique log files.  this is important because
+# cron doesn't have the normal variable 'USER' defined.  cron does define
+# HOME, which is pretty lucky for us...
+# please change the name to the user running the cronjob, or to whatever
+# unique string you'd like to use:
+CRONUSER=fred
 
 # set the shell to bash.  (not the default for some cron implementations.)
 SHELL=/bin/bash
@@ -30,12 +37,6 @@ SHELL=/bin/bash
 # the wildcard form of a crontab line is this: "* * * * * command"
 # that "command" will execute every single minute.
 
-# set a user name for writing unique log files.  this is important because
-# cron doesn't have the variable USER defined.  cron does define HOME, which
-# is pretty lucky for us...
-# you may want to use a more appropriate user name than mine, which is "fred".
-USER=fred
-
 # the guts of the crontab would follow below.  this usually is a set of valid
 # crontab lines that spell the time or times for commands to be executed.  my
 # crontabs usually have from 3 to 8 entries because i tend to atomicize the
@@ -51,16 +52,15 @@ USER=fred
 # with cron job output on some systems.  you can use the normal output
 # redirection operators to do this (e.g. '>', '2>', '&>', '>>' and '&>>').
 # /dev/null works as an output target if you don't ever want to see the
-# results from your cron jobs.  i usually prefer to write log files in the /tmp
-# directory with the ${USER} variable in the file name.  here's an example of
-# a real command with output that will *append* both output and error streams
-# ('&>>') to an output file.  if your output can be huge, then you may want to
-# overwrite the output file instead ('&>').
+# results from your cron jobs.  i usually prefer to write log files in the
+# /tmp directory with the ${CRONUSER} variable added in the file name.
+# below is a live example which we almost always include, so it's embedded
+# here for convenience.
 
 #[nechung fortune]
 # runs every minute and recreates a fortune for thunderbird signature.
 # a lot of the detail below is to get the feisty meow environment loaded for
 # the new_sig command.
-* * * * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; perl $HOME/feisty_meow/scripts/text/new_sig.pl) &>>/tmp/${USER}-cron-nechung_fortune.log
+* * * * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; perl $HOME/feisty_meow/scripts/text/new_sig.pl) &>>/tmp/${CRONUSER}-cron-nechung_fortune.log
 
 
index ab75d0bcaf4d77efa8ac9d8fae49837a53bc8e37..a08e239ad088913800eba42a276f4e6bd52f0292 100644 (file)
@@ -1,5 +1,5 @@
 
 #[backup git account]
 # archives the whole ~git folder with all account databases into a compressed tar file.
-34 20 * * 5 tar -czf /z/stuffing/archives/git_archive_$(date +"\%Y_\%m_\%d_\%H\%M_\%S" | tr -d '/\n/').tar.gz /home/git &>>/tmp/${USER}-cron-backup_git_account.log
+34 20 * * 5 tar -czf /z/stuffing/archives/git_archive_$(date +"\%Y_\%m_\%d_\%H\%M_\%S" | tr -d '/\n/').tar.gz /home/git &>>/tmp/${CRONUSER}-cron-backup_git_account.log
 
index c3fa624b86c02b1f427b87fb1df11552f9785fc5..752f6e021b80b1b207bc503f8799035c1b316d2f 100644 (file)
@@ -1,5 +1,5 @@
 
 #[backup maildir]
 # backs up the maildir folder for fred bi-monthly.
-8 4 3,14 * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; tar -czf /z/stuffing/archives/maildir_backup_$(date_stringer).tar.gz $HOME/Maildir) &>/tmp/${USER}-cron-backup_maildir.log
+8 4 3,14 * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; tar -czf /z/stuffing/archives/maildir_backup_$(date_stringer).tar.gz $HOME/Maildir) &>/tmp/${CRONUSER}-cron-backup_maildir.log
 
index 4bca961e888b822079e9f543b85814531f5b2114..991b6f6fd720547ebed55426588c7339916f33b4 100644 (file)
@@ -1,5 +1,5 @@
 
 #[backup mysql databases]
 # backs up all of our mysql databases on a weekly basis.
-28 4 * * 2 (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; mysqldump -u root '-pPASSWORD' --all-databases | gzip > /z/stuffing/archives/database_backup_$(hostname)_$(date_stringer).sql.gz) &>>/tmp/${USER}-cron-backup_mysql_databases.log
+28 4 * * 2 (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; mysqldump -u root '-pPASSWORD' --all-databases | gzip > /z/stuffing/archives/database_backup_$(hostname)_$(date_stringer).sql.gz) &>>/tmp/${CRONUSER}-cron-backup_mysql_databases.log
 
index 32a5200471f75b88faa1f2482e630c95ffcd9c56..a061dd94504b67cc3eb4812567217347e8b46827 100644 (file)
@@ -1,5 +1,5 @@
 
 #[backup photo albums]
 # back up the pictures in coppermine gallery every month.
-34 6 4 * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; tar -czf /z/stuffing/archives/photo_albums_backup_$(date_stringer).tar.gz /home/albums ; refred) &>>/tmp/${USER}-cron-backup_photo_albums.log
+34 6 4 * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; tar -czf /z/stuffing/archives/photo_albums_backup_$(date_stringer).tar.gz /home/albums ; refred) &>>/tmp/${CRONUSER}-cron-backup_photo_albums.log
 
index 146a16d4cf8e12c24b84308963cfc19ed8eec5c7..cfbff0408adb9351150d7f37fdaebe2de1d6ba1c 100644 (file)
@@ -1,5 +1,5 @@
 
 #[backup serene system]
 # backs up config files and important parts of home directories to off-machine storage.
-14 2 * * */7 (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; bash $HOME/feisty_meow/scripts/archival/serene_backer_upper.sh) &>>/tmp/${USER}-cron-backup_serene_system.log
+14 2 * * */7 (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; bash $HOME/feisty_meow/scripts/archival/serene_backer_upper.sh) &>>/tmp/${CRONUSER}-cron-backup_serene_system.log
 
index 992446a851c14961c256b92cc6e46592f1830fe9..007cb0241a568f108d0ef2cd1d8559262726f712 100644 (file)
@@ -1,5 +1,5 @@
 
 #[backup trac]
 # backs up trac every week.
-28 7 * * 2 bash $HOME/feisty_meow/scripts/archival/backup_trac.sh /home/trac /z/stuffing/archives &>>/tmp/${USER}-cron-backup_trac.log
+28 7 * * 2 bash $HOME/feisty_meow/scripts/archival/backup_trac.sh /home/trac /z/stuffing/archives &>>/tmp/${CRONUSER}-cron-backup_trac.log
 
index acd7cc04f5a49ac7e16506d3dfe421b842f87648..0c6f888bfe63c73e6bd1af9ced5a4ebb3f11116d 100644 (file)
@@ -1,5 +1,5 @@
 
 #[bookmarks builder]
 # regenerate the bookmarks pages.
-24 10 * * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; bash $HOME/feisty_meow/scripts/bookmarks/create_marks.sh ) &>>/tmp/${USER}-cron-bookmarks_builder.log 
+24 10 * * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; bash $HOME/feisty_meow/scripts/bookmarks/create_marks.sh ) &>>/tmp/${CRONUSER}-cron-bookmarks_builder.log 
 
index 778a26487be07b1fe3acd0d4d37208220aebb8cb..1087ce0020409aeb9ac3bbc2f34a11bc1ab2f092 100644 (file)
@@ -2,6 +2,6 @@
 #[chkrootkit]
 # this runs chkrootkit to demonstrate a bug in the vm kernel currently
 # provided by...?  hmmm: who's the vendor?
-3 * * * * (/usr/sbin/chkrootkit -q &>/var/www/rootkit_report_quiet.txt ) &>>/tmp/${USER}-cron-chkrootkit.log 
-4 * * * * (/usr/sbin/chkrootkit -x &>/var/www/rootkit_report_expert.txt ) &>>/tmp/${USER}-cron-chkrootkit.log 
+3 * * * * (/usr/sbin/chkrootkit -q &>/var/www/rootkit_report_quiet.txt ) &>>/tmp/${CRONUSER}-cron-chkrootkit.log 
+4 * * * * (/usr/sbin/chkrootkit -x &>/var/www/rootkit_report_expert.txt ) &>>/tmp/${CRONUSER}-cron-chkrootkit.log 
 
index fa51d99a9e9fc15e56b2859fbd730eff1e7d8655..c75baed65ce8dd29424216f6ba3b59178277104f 100644 (file)
@@ -1,6 +1,6 @@
 
 #[doxygen]
 # update the feisty meow documentation once on each of tuesday, thursday and saturday.
-20 4 * * 2,4,6 (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; cd $HOME/feisty_meow/documentation; make) &>>/tmp/${USER}-cron-doxygen.log 
+20 4 * * 2,4,6 (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; cd $HOME/feisty_meow/documentation; make) &>>/tmp/${CRONUSER}-cron-doxygen.log 
 
 
index 627d16dc33e8f0ae6b755473384e67338e6d63b7..152dd4b053716150918638fb7e97c570342a9094 100644 (file)
@@ -1,5 +1,5 @@
 
 #[emit crontab]
 # meta-operation to backup the crontab file using cron itself.
-28 */8 * * * crontab -l >$HOME/$(hostname).$USER.crontab
+28 */8 * * * crontab -l >$HOME/$(hostname).$CRONUSER.crontab
 
index 18a43ef6af6f4d2d556fe14c734232dc3fe6e86f..4a343de03f3ff848b6c61dd7b08612803348d66d 100644 (file)
@@ -1,5 +1,5 @@
 
 #[letsencrypt renewal]
 # run the letsencrypt certificate renewal process every 4 hours.
-37 */4 * * * letsencrypt renew &>>/tmp/${USER}-cron-letsencrypt_renewal.log 
+37 */4 * * * letsencrypt renew &>>/tmp/${CRONUSER}-cron-letsencrypt_renewal.log 
 
index b220c2de017684ab369989b328290a145d8cb5f3..c8c6375c56c9a27cf311db2c718c535a403857d7 100644 (file)
@@ -3,5 +3,5 @@
 # runs every minute and recreates a fortune for thunderbird signature.
 # a lot of the detail below is to get the feisty meow environment loaded for
 # the new_sig command.
-* * * * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; perl $HOME/feisty_meow/scripts/text/new_sig.pl) &>>/tmp/${USER}-cron-nechung_fortune.log
+* * * * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; perl $HOME/feisty_meow/scripts/text/new_sig.pl) &>>/tmp/${CRONUSER}-cron-nechung_fortune.log
 
index 8dc3ab0aa84cc53c1044c9882bd2fc49f958f0b4..88c1a554fd95ef2363f98b5d86403733884dd9c5 100644 (file)
@@ -1,5 +1,5 @@
 
 #[opensim restart]
 # ensure opensim is started if we can't detect it as running.
-*/5 * * * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; bash $HOME/feisty_meow/scripts/opensim/maybe_restart_opensim.sh) &>>/tmp/${USER}-cron-opensim_restart.log 
+*/5 * * * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; bash $HOME/feisty_meow/scripts/opensim/maybe_restart_opensim.sh) &>>/tmp/${CRONUSER}-cron-opensim_restart.log 
 
index 1f90527c9046f3a1ffbc749c335357a13e00a654..83473f30fd272caa3a942b64f7a22bfed1c41d36 100644 (file)
@@ -1,5 +1,5 @@
 
 #[pack feisty for web]
 # this packs up our source code distributions every 8 days.
-16 22 */8 * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; bash $HOME/feisty_meow/scripts/archival/pack_feisty_meow.sh) &>>/tmp/${USER}-cron-pack_feisty_for_web.log 
+16 22 */8 * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; bash $HOME/feisty_meow/scripts/archival/pack_feisty_meow.sh) &>>/tmp/${CRONUSER}-cron-pack_feisty_for_web.log 
 
index b88350d85c8a99cc18d494e9065db064eb8c3897..e0d76a25b3285884fc0b75c922fc14142aa4df02 100644 (file)
@@ -1,5 +1,5 @@
 
 #[process check]
 # a crontab for periodically dumping the process state.
-* * * * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; bash $HOME/feisty_meow/scripts/processes/show_hot_ones.sh) &>>/tmp/${USER}-cron-active_processes.log 
+* * * * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; bash $HOME/feisty_meow/scripts/processes/show_hot_ones.sh) &>>/tmp/${CRONUSER}-cron-active_processes.log 
 
index 144e077854eeb59aea5eb1d0782ef5254b7b9930..31f894bf130143461e1efbfa0a9ed4e89c5f10f3 100644 (file)
@@ -1,4 +1,4 @@
 
 #[random sound]
-* * * * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; bash $HOME/feisty_meow/scripts/multimedia/randomly_play.sh) &>>/tmp/${USER}-cron-random_sound.log
+* * * * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; bash $HOME/feisty_meow/scripts/multimedia/randomly_play.sh) &>>/tmp/${CRONUSER}-cron-random_sound.log
 
index c670cb5fe9d9cd57fd50582f648c1ede63b5ec75..e1096a06262d866e607f4686daed97625b5c0c07 100644 (file)
@@ -1,5 +1,5 @@
 
 #[snarf linux configuration]
 # do a backup of the linux configuration files once a week.
-28 7 * * 4 (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; cd /z/stuffing/archives; perl $HOME/feisty_meow/scripts/archival/snarf_linux_config.pl) &>>/tmp/${USER}-cron-snarf_linux_configuration.log
+28 7 * * 4 (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; cd /z/stuffing/archives; perl $HOME/feisty_meow/scripts/archival/snarf_linux_config.pl) &>>/tmp/${CRONUSER}-cron-snarf_linux_configuration.log
 
index f4fee1340c6b083c884557a342ea0d835fcf7acd..d447b62e9db70f05d8a4c881fe6c2191f2939e2c 100644 (file)
@@ -4,5 +4,5 @@
 # repositories, such as sourceforge or github.  the uploading process (which we think of as sending
 # those updated items swimming downstream to their dependent repositories) is done automatically in
 # our makefiles.  that's why the code below relies on the top-level makefile in home.
-14 3 * * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; cd $HOME ; rev_update ; make ) &>>/tmp/${USER}-cron-synch_and_swim_downstream.log
+14 3 * * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; cd $HOME ; rev_update ; make ) &>>/tmp/${CRONUSER}-cron-synch_and_swim_downstream.log
 
index a6c31a1ce4e7e8e7846d4d16d9cbdc97ccbdb049..37322d24cf421fa1665c51dbb00909c5405aeec4 100644 (file)
@@ -1,5 +1,5 @@
 
 #[tell zooty our ip]
 # firewall host only--inform serene/zooty of our home IP address to enable back-connections.
-0,14,28,42,56 * * * * (bash /home/fred/feisty_meow/scripts/security/tell_zooty_our_ip.sh serene.feistymeow.org fred fred ) &>>/tmp/${USER}-cron-tell_zooty_our_ip.log
+0,14,28,42,56 * * * * (bash /home/fred/feisty_meow/scripts/security/tell_zooty_our_ip.sh serene.feistymeow.org fred fred ) &>>/tmp/${CRONUSER}-cron-tell_zooty_our_ip.log
 
index 8b4ff038d657de8c435565920d556cf2837ae176..17cdd55492c6a9c33eb4aa34f625830b09e10d3a 100644 (file)
@@ -2,13 +2,13 @@
 #[time synch]
 
 # standard to synch to local machine.
-#0,4,8,12,16,20,24,28,32,36,40,44,48,52,56 * * * * /usr/sbin/sntp -P no -r greendragon &>>/tmp/${USER}-cron-time_synch.log
+#0,4,8,12,16,20,24,28,32,36,40,44,48,52,56 * * * * /usr/sbin/sntp -P no -r greendragon &>>/tmp/${CRONUSER}-cron-time_synch.log
 #or
-0,4,8,12,16,20,24,28,32,36,40,44,48,52,56 * * * * /usr/bin/rdate -s -n greendragon &>>/tmp/${USER}-cron-time_synch.log
+0,4,8,12,16,20,24,28,32,36,40,44,48,52,56 * * * * /usr/bin/rdate -s -n greendragon &>>/tmp/${CRONUSER}-cron-time_synch.log
 # -n is nntp which may not work with govt servers.
 
 # one machine on the network uses this version, to synch externally.
-#0 0,4,8,12,16,20 * * * /usr/sbin/sntp -P no -r time.nist.gov &>>/tmp/${USER}-cron-time_synch.log
+#0 0,4,8,12,16,20 * * * /usr/sbin/sntp -P no -r time.nist.gov &>>/tmp/${CRONUSER}-cron-time_synch.log
 #or
-0 0,4,8,12,16,20 * * * /usr/bin/rdate -s time-c.nist.gov &>>/tmp/${USER}-cron-time_synch.log
+0 0,4,8,12,16,20 * * * /usr/bin/rdate -s time-c.nist.gov &>>/tmp/${CRONUSER}-cron-time_synch.log
 
index 1494c34c1c846b862fdb3d1c206582563ca24dcf..3ee25494eea7357f2c68dc02964395465462c825 100644 (file)
@@ -1,5 +1,5 @@
 
 #[uptime report]
 # the script writes the current time and current uptime to the log file.
-0 * * * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; bash $HOME/feisty_meow/scripts/system/write_uptime_report.sh) &>>/tmp/${USER}-cron-uptime_report.log
+0 * * * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; bash $HOME/feisty_meow/scripts/system/write_uptime_report.sh) &>>/tmp/${CRONUSER}-cron-uptime_report.log
 
index 0dd5b0a8668db7346c0744383791fe04cfd58578..882681cf648afa916172ce053e8418d05417a165 100644 (file)
@@ -42640,4 +42640,8 @@ effort are in the heap of wisdom awareness;
 full liberation.
   -- Gampopa, from "The Jewel Ornament of Liberation", published by Shambhala
      Publications
+~
+i try to think of 10,008 impossible things before breakfast,
+and i'm near ecstatic if any of those is worth writing down.
+  -- fred t. hamster
 
index b70d75f2d8229b378dec2f64edaa24230f8bf1a4..847fb68e1d30ea25bce9623dbfda0ee3642f8c85 100644 (file)
@@ -1,23 +1,27 @@
 #!/bin/bash
 
+# counts the number of files in a set of directories.
+# if no directories are provided, uses the current working directory.
 
-# make sure they gave us some arguments.
-if [ -z "$1" ]; then
+# make sure they gave us some arguments, or go with our default of the current dir.
 #hmmm: could use the count notation instead of sloppy empty check.
-  # reset first arg to be '*' to do any directories here.
-#echo changing args to use all subdirs in current dir.
+if [ -z "$1" ]; then
+  # reset the arguments list to scan any directories found in cwd.
+  SAVEIFS="$IFS"
+  IFS=$(echo -en "\n\b")
   set -- $(find . -maxdepth 1 -mindepth 1 -type d) "${@:2}"
-#echo "arg 1 is now '$1'"
+  IFS="$SAVEIFS"
 fi
 
-# run through all the parameters provided and find any
-# directories under them (or probably barf if they're not
-# dirs).
-for i in "${@}" ; do
+# run through all the parameters provided and find any directories under them
+# (or probably barf if they're not dirs).
+#hmmm: really?  "barf" is an implementation strategy now?
+for countfilesname in "${@}" ; do
+#  echo "arg is: '$countfilesname'"
   # print the count of files followed by directory name,
   # with leading zeros to allow sorting, which get
   # redigested as spaces before showing the list.
-  printf "%06d -- %s\n" $(find "$i" -type f | wc -l) "$i"
+  printf "%06d -- %s\n" $(find "$countfilesname" -type f | wc -l) "$countfilesname"
 done |
   # provide sorted output based on how many files exist
   # in each directory.