tag:blogger.com,1999:blog-7621289046351021852024-03-05T09:10:05.825-08:00handybashscriptsHandy or less than, bash scripts blog by robz.Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.comBlogger49125tag:blogger.com,1999:blog-762128904635102185.post-41642935479843895132018-09-22T04:45:00.000-07:002018-09-30T05:38:55.263-07:00Weather Scraper<html><head><style type="text/css"><!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
* { font-size: 1em; }
.Statement { color: #a52a2a; font-weight: bold; }
.Comment { color: #0000ff; }
.Constant { color: #ff00ff; }
.Special { color: #6a5acd; }
.Identifier { color: #008b8b; }
.PreProc { color: #800080; }
-->
</style></head><body><br />
<pre id="vimCodeElement"><span class="Comment">#!/bin/bash</span>
<span class="Comment"># Filename: weather.sh</span>
<span class="Comment"># Version.: 21092018</span>
<span class="Comment"># Author..: robz</span>
<span class="Comment">#</span>
<span class="Comment"># Met Office scraper widget.</span>
<span class="Comment"># Get the url from the web page for your location, chop the date off the end.</span>
<span class="Comment"># Run from a launcher with this command.</span>
<span class="Comment"># mate-terminal -t "Current Weather" -e /home/robz/scripts/weather.sh</span>
<span class="Comment">#</span>
<span class="Identifier">sed1 () {</span> <span class="Statement">sed</span> <span class="Statement">'</span><span class="Constant">s/<[^>]\+>//g</span><span class="Statement">'</span><span class="Statement">;</span> <span class="Identifier">}</span>
<span class="Identifier">sed2 () {</span> <span class="Statement">sed</span> <span class="Special">-e</span> <span class="Statement">'</span><span class="Constant">s/^[ \t\n]*//;s/[ \t\n]*//</span><span class="Statement">'</span><span class="Statement">;</span> <span class="Identifier">}</span>
<span class="Identifier">wsite</span>=<span class="Statement">"</span><span class="Constant"><a href="https://www.metoffice.gov.uk/public/weather/forecast/qwex0q244#?date=">https://www.metoffice.gov.uk/public/weather/forecast/qwerty123#?date=</a></span><span class="Statement">"</span>
<span class="Identifier">wfile</span>=<span class="Statement">"</span><span class="Constant">/home/robz/scripts/weather.txt</span><span class="Statement">"</span>
<span class="Identifier">hours</span>=<span class="PreProc">$(</span><span class="Special">date +%H </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">sed</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">s/^0//</span><span class="Statement">'</span><span class="PreProc">)</span>
<span class="Identifier">today</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">date +%Y-%m-%d</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Identifier">check</span>=<span class="PreProc">$(</span><span class="Statement">grep</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">Timecheck</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$0</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">tail</span><span class="Special"> </span><span class="Constant">-1</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> cut </span><span class="Special">-d</span><span class="Statement">'</span><span class="Constant"> </span><span class="Statement">'</span><span class="Special"> </span><span class="Special">-f</span><span class="Constant">3</span><span class="PreProc">)</span>
<span class="Statement">if </span><span class="Special">[[</span> <span class="Statement">"</span><span class="PreProc">$check</span><span class="Statement">"</span> <span class="Statement">!=</span> <span class="Statement">"</span><span class="PreProc">$hours</span><span class="Statement">"</span> <span class="Special">]]</span><span class="Statement">;</span> <span class="Statement">then</span> <span class="Comment"># Check stamp at end of script.</span>
wget <span class="Statement">-q</span> <span class="Special">--retry-connrefused</span> <span class="Special">--waitretry=1</span> \
<span class="Statement">"</span><span class="PreProc">$wsite$today</span><span class="Statement">"</span> <span class="Statement">-O</span> <span class="Statement">"</span><span class="PreProc">$wfile</span><span class="Statement">"</span> <span class="Comment"># If it's old re-scrape page.</span>
<span class="Statement">sed</span> <span class="Statement">-i</span> <span class="Statement">'</span><span class="Constant">$d</span><span class="Statement">'</span> <span class="Statement">"</span><span class="PreProc">$0</span><span class="Statement">"</span> <span class="Comment"># Delete old time stamp.</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant"># Timecheck </span><span class="PreProc">$hours</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">>></span> <span class="PreProc">$0</span> <span class="Comment"># Insert new.</span>
<span class="Statement">fi</span>
<span class="Statement">echo</span><span class="Constant"> -e </span><span class="Statement">"</span><span class="Special">\n</span><span class="Constant">Todays weather - </span><span class="PreProc">$(</span><span class="Special">date +%a</span><span class="Statement">'</span><span class="Constant"> </span><span class="Statement">'</span><span class="Special">%d</span><span class="Statement">'</span><span class="Constant"> </span><span class="Statement">'</span><span class="Special">%b</span><span class="Statement">'</span><span class="Constant"> - </span><span class="Statement">'</span><span class="Special">%H</span><span class="Statement">'</span><span class="Constant">:00</span><span class="Statement">'</span><span class="PreProc">)</span><span class="Constant"> onwards:-</span><span class="Special">\n</span><span class="Statement">"</span>
<span class="Identifier">time</span>=<span class="PreProc">$(</span><span class="Statement">grep</span><span class="Special"> </span><span class="Special">-m</span><span class="Constant">1</span><span class="Special"> </span><span class="Special">-A</span><span class="Constant">9</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">Now</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$wfile</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> sed</span><span class="Constant">1</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> sed</span><span class="Constant">2</span><span class="PreProc">)</span>
<span class="Identifier">aspt</span>=<span class="PreProc">$(</span><span class="Statement">grep</span><span class="Special"> </span><span class="Special">-m</span><span class="Constant">1</span><span class="Special"> </span><span class="Special">-A</span><span class="Constant">30</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">weatherWX</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$wfile</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> sed</span><span class="Constant">2</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">grep</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">title</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> \</span>
<span class="Special">cut </span><span class="Special">-d</span><span class="Special">\"</span><span class="Special"> </span><span class="Special">-f</span><span class="Constant">2</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">sed</span><span class="Special"> </span><span class="Special">-e</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">s/day\|night//</span><span class="Statement">'</span><span class="PreProc">)</span>
<span class="Identifier">prec</span>=<span class="PreProc">$(</span><span class="Statement">grep</span><span class="Special"> </span><span class="Special">-m</span><span class="Constant">1</span><span class="Special"> </span><span class="Special">-A</span><span class="Constant">10</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">Chance</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$wfile</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> sed</span><span class="Constant">1</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> sed</span><span class="Constant">2</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> cut </span><span class="Special">-d</span><span class="Special">\;</span><span class="Special"> </span><span class="Special">-f</span><span class="Constant">2</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">tail</span><span class="PreProc">)</span>
<span class="Identifier">temp</span>=<span class="PreProc">$(</span><span class="Statement">grep</span><span class="Special"> </span><span class="Special">-m</span><span class="Constant">1</span><span class="Special"> </span><span class="Special">-A</span><span class="Constant">80</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">weatherTemp</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$wfile</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">grep</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">data-value=</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> \</span>
<span class="Special">cut </span><span class="Special">-d</span><span class="Special">\"</span><span class="Special"> </span><span class="Special">-f</span><span class="Constant">2</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">sed</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">s/$/°C/</span><span class="Statement">'</span><span class="PreProc">)</span>
<span class="Identifier">wind</span>=<span class="PreProc">$(</span><span class="Statement">grep</span><span class="Special"> </span><span class="Special">-m</span><span class="Constant">10</span><span class="Special"> </span><span class="Special">-A</span><span class="Constant">10</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">"direction"</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$wfile</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">grep</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">data-value=</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> \</span>
<span class="Special">cut </span><span class="Special">-d</span><span class="Special">\"</span><span class="Special"> </span><span class="Special">-f</span><span class="Constant">2</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">sed</span><span class="Special"> </span><span class="Special">-e</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">s/$/mph/</span><span class="Statement">'</span><span class="PreProc">)</span>
<span class="Identifier">win2</span>=<span class="PreProc">$(</span><span class="Statement">grep</span><span class="Special"> </span><span class="Special">-m</span><span class="Constant">10</span><span class="Special"> </span><span class="Special">-A</span><span class="Constant">10</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">"direction"</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$wfile</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">grep</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">data-value2=</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> \</span>
<span class="Special">cut </span><span class="Special">-d</span><span class="Special">\"</span><span class="Special"> </span><span class="Special">-f</span><span class="Constant">2</span><span class="PreProc">)</span>
<span class="Identifier">gust</span>=<span class="PreProc">$(</span><span class="Statement">grep</span><span class="Special"> </span><span class="Special">-m</span><span class="Constant">11</span><span class="Special"> </span><span class="Special">-A</span><span class="Constant">11</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">"gust"</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$wfile</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">grep</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">data-value="</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">sed</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">n;d;</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> \</span>
<span class="Special">cut </span><span class="Special">-d</span><span class="Special">\"</span><span class="Special"> </span><span class="Special">-f</span><span class="Constant">2</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">sed</span><span class="Special"> </span><span class="Special">-e</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">s/$/mph/</span><span class="Statement">'</span><span class="PreProc">)</span>
<span class="Identifier">hours</span>=<span class="PreProc">$((</span><span class="Special"> 24-hours </span><span class="PreProc">))</span> <span class="Comment"># Number of hours to head file.</span>
paste <span class="Statement"><</span><span class="PreProc">(</span><span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$time</span><span class="Statement">"</span><span class="PreProc">)</span> <span class="Statement"><</span><span class="PreProc">(</span><span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$aspt</span><span class="Statement">"</span><span class="PreProc">)</span> <span class="Statement"><</span><span class="PreProc">(</span><span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$prec</span><span class="Statement">"</span><span class="PreProc">)</span> <span class="Statement"><</span><span class="PreProc">(</span><span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$temp</span><span class="Statement">"</span><span class="PreProc">)</span> <span class="Statement">\</span>
<span class="Statement"><</span><span class="PreProc">(</span><span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$wind</span><span class="Statement">"</span><span class="PreProc">)</span> <span class="Statement"><</span><span class="PreProc">(</span><span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$win2</span><span class="Statement">"</span><span class="PreProc">)</span> <span class="Statement"><</span><span class="PreProc">(</span><span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$gust</span><span class="Statement">"</span><span class="PreProc">)</span> | head <span class="Special">-n</span><span class="PreProc">$hours</span> | <span class="Statement">\</span>
column <span class="Special">-s</span> <span class="Statement">$'</span><span class="Special">\t</span><span class="Statement">'</span> <span class="Special">-t</span>
<span class="Statement">echo</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="PreProc">$(</span><span class="Statement">grep</span><span class="Special"> </span><span class="Special">-m</span><span class="Constant">2</span><span class="Special"> </span><span class="Special">-E</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">Sunrise|Sunset</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$wfile</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> sed</span><span class="Constant">1</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> sed</span><span class="Constant">2</span><span class="PreProc">)</span><span class="Constant"> </span>| column <span class="Special">-s</span> <span class="Special">-t</span>
<span class="Statement">read</span>
<span class="Comment"># Timecheck has to be the last line no blanks.</span>
<span class="Comment"># Timecheck 13</span>
</pre></body></html>Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-9207779715989640302018-09-05T00:36:00.000-07:002018-09-05T00:37:40.307-07:00Clean Scrape<html><head><style type="text/css"><!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
* { font-size: 1em; }
.Special { color: #6a5acd; }
.Statement { color: #a52a2a; font-weight: bold; }
.Comment { color: #0000ff; }
.Constant { color: #ff00ff; }
--></style></head><body><br />
<pre id='vimCodeElement'><span class="Comment">#!/bin/bash</span>
<span class="Comment"># Filename: clean-scrape.sh</span>
<span class="Comment"># Version.: 05082018</span>
<span class="Comment"># Author..: robz</span>
<span class="Comment"># Clean list of magnet links from "showRSS.info" page source scrape.</span>
<span class="Comment"># Add to your file browser scripts directory for right click usage.</span>
<span class="Comment"># Usage: In the web browser, right click - "View Page Source" - "Select All" </span>
<span class="Comment"># left click - drag to desktop - right click - run script</span>
<span class="Statement">cd</span> <span class="Statement">'</span><span class="Constant">/home/robz/Desktop</span><span class="Statement">'</span>
<span class="Statement">[</span> <span class="Statement">-e</span> <span class="Statement">'</span><span class="Constant">dropped text.txt</span><span class="Statement">'</span> <span class="Statement">]</span> || <span class="Statement">exit</span>
<span class="Statement">sed</span> <span class="Statement">'</span><span class="Constant">/1080p\|720p/d;/href="magnet/!d;s/.*href="//;s/" .*//</span><span class="Statement">'</span> <span class="Statement">'</span><span class="Constant">dropped text.txt</span><span class="Statement">'</span> <span class="Statement">\</span>
| <span class="Statement">sort</span> <span class="Special">-t</span><span class="Statement">=</span> -k<span class="Constant">3</span> <span class="Special">-o</span> <span class="Statement">'</span><span class="Constant">dropped text.txt</span><span class="Statement">'</span>
<span class="Statement">mv</span> <span class="Statement">'</span><span class="Constant">dropped text.txt</span><span class="Statement">'</span> <span class="Statement">'</span><span class="Constant">add-magnet.txt</span><span class="Statement">'</span>
<span class="Statement">exit</span>
</pre></body><br />
</html>Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-53947079337794705862018-05-21T03:17:00.001-07:002018-05-21T03:17:26.436-07:00Fix Subtitle Offset<html><head><style type="text/css"><!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
* { font-size: 1em; }
.PreProc { color: #800080; }
.Statement { color: #a52a2a; font-weight: bold; }
.Comment { color: #0000ff; }
.Constant { color: #ff00ff; }
.Special { color: #6a5acd; }
.Identifier { color: #008b8b; }
--></style></head><body><br />
<pre><span class="Comment">#!/bin/bash</span>
<span class="Comment"># Filename: srt-fix-offset.sh</span>
<span class="Comment"># Version.: 20052018</span>
<span class="Comment"># Author..: not robz</span>
<span class="Comment"># A script to modify subtitle offset beyond the Kodi maximum of 60 seconds.</span>
<span class="Comment"># Put original titles in a file called "srt.txt" in your home directory and</span>
<span class="Comment"># run the script.</span>
<span class="Comment"># In all honesty this is pretty much a copy paste job from Linux Questions.</span>
<span class="Comment"># For more detailed information goto:</span>
<span class="Comment"># www.linuxquestions.org/questions/linux-newbie-8/editing-srt-files-4175436550/</span>
<span class="Comment">#</span>
<span class="Comment"># Modify and comment the offset variable as appropriate.</span>
<span class="Comment"># Advance subtitles.</span>
<span class="Identifier">offset</span>=<span class="Statement">"</span><span class="Constant">75 seconds</span><span class="Statement">"</span>
<span class="Comment"># Retard subtiles.</span>
<span class="Comment">#offset="5 seconds ago"</span>
<span class="Statement">while </span><span class="Statement">read</span><span class="Statement"> </span><span class="Statement">start</span><span class="Statement"> s end</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span>
<span class="Statement">if </span><span class="Special">[[</span> <span class="PreProc">$start</span> <span class="Statement">=~</span> <span class="Constant">^..:..:..,...</span> <span class="Special">]]</span><span class="Statement">;</span> <span class="Statement">then</span>
<span class="Statement">start</span><span class="Statement">=</span><span class="PreProc">$(</span><span class="Special">date </span><span class="Special">-d</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$start</span><span class="Constant"> </span><span class="PreProc">$offset</span><span class="Statement">"</span><span class="Special"> +%H:%M:%S,%N</span><span class="PreProc">)</span>
<span class="Identifier">end</span>=<span class="PreProc">$(</span><span class="Special">date </span><span class="Special">-d</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$end</span><span class="Constant"> </span><span class="PreProc">$offset</span><span class="Statement">"</span><span class="Special"> +%H:%M:%S,%N</span><span class="PreProc">)</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="PreProc">${</span><span class="PreProc">start</span><span class="Statement">:</span><span class="Constant">0</span><span class="Statement">:</span><span class="Constant">12</span><span class="PreProc">}</span><span class="Constant"> </span><span class="PreProc">$s</span><span class="Constant"> </span><span class="PreProc">${</span><span class="PreProc">end</span><span class="Statement">:</span><span class="Constant">0</span><span class="Statement">:</span><span class="Constant">12</span><span class="PreProc">}</span>
<span class="Statement">else</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="PreProc">$start</span><span class="Constant"> </span><span class="PreProc">$s</span><span class="Constant"> </span><span class="PreProc">$end</span>
<span class="Statement">fi</span>
<span class="Statement">done</span> <span class="Statement"><</span> srt.txt <span class="Statement">>></span> new-subtitles.srt
</pre></body><br />
</html>Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-74054276330746075672018-02-10T04:18:00.002-08:002018-02-10T04:28:10.060-08:00DAB Radio<html><br />
<head><style type="text/css"><!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
* { font-size: 1em; }
.PreProc { color: #800080; }
.Statement { color: #a52a2a; font-weight: bold; }
.Comment { color: #0000ff; }
.Constant { color: #ff00ff; }
.Special { color: #6a5acd; }
.Identifier { color: #008b8b; }
--></style></head><body><pre id='vimCodeElement'><span class="Comment">#!/bin/bash</span>
<span class="Comment"># Filename: dab-radio.sh</span>
<span class="Comment"># Version.: 07022018</span>
<span class="Comment"># Author..: robz</span>
<span class="Comment"># Basic DAB radio via a cheap DVB-T dongle using a "zenity" gui and the command</span>
<span class="Comment"># line version of "vlc player", see man vlc. The utility "wmctrl" places the gui</span>
<span class="Comment"># top left of the screen. The initial scanning for radio stations I used the</span>
<span class="Comment"># "w_scan" utility to create a playlist text file.</span>
<span class="Identifier">text</span>=<span class="Statement">"</span><span class="Constant">Make a selection</span><span class="Statement">"</span>
<span class="Identifier">optn</span>=<span class="Statement">"</span><span class="Constant">:dvb-frequency=522000000 :dvb-bandwidth=8 :dvb-ts-id=4168 \</span>
<span class="Constant">:dvb-code-rate-hp=2/3 :dvb-modulation=64QAM :dvb-transmission=8 \</span>
<span class="Constant">:dvb-guard=1/32 :program=</span><span class="Statement">"</span>
<span class="Identifier">get_mplex () {</span>
<span class="Identifier">prog</span>=<span class="PreProc">$(</span><span class="Special">zenity </span><span class="Special">--list</span><span class="Special"> </span><span class="Special">--radiolist</span><span class="Special"> </span><span class="Special">--height=400</span><span class="Special"> </span><span class="Special">--width=200</span><span class="Special"> </span><span class="Special">--hide-header</span><span class="Special"> \</span>
<span class="Special">--title</span><span class="Statement">=</span><span class="Statement">'</span><span class="Constant">robz DAB Radio</span><span class="Statement">'</span><span class="Special"> </span><span class="Special">--text=</span><span class="Statement">"</span><span class="PreProc">$text</span><span class="Statement">"</span><span class="Special"> </span><span class="Special">--column</span><span class="Special"> </span><span class="Statement">''</span><span class="Special"> </span><span class="Special">--column</span><span class="Special"> </span><span class="Statement">''</span><span class="Special"> </span><span class="Special">--column</span><span class="Special"> </span><span class="Statement">''</span><span class="Special"> \</span>
<span class="Special">--hide-column</span><span class="Statement">=</span><span class="Constant">3</span><span class="Special"> </span><span class="Special">--print-column=ALL</span><span class="Special"> </span><span class="Special">--ok-label=</span><span class="Statement">'</span><span class="Constant">Play</span><span class="Statement">'</span><span class="Special"> \</span>
<span class="Special">FALSE </span><span class="Statement">'</span><span class="Constant">BBC Radio 1</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">6720</span><span class="Statement">'</span><span class="Special"> \</span>
<span class="Special">FALSE </span><span class="Statement">'</span><span class="Constant">BBC Radio 1 Extra</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">5888</span><span class="Statement">'</span><span class="Special"> \</span>
<span class="Special">FALSE </span><span class="Statement">'</span><span class="Constant">BBC Radio 2</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">6784</span><span class="Statement">'</span><span class="Special"> \</span>
<span class="Special">FALSE </span><span class="Statement">'</span><span class="Constant">BBC Radio 3</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">6848</span><span class="Statement">'</span><span class="Special"> \</span>
<span class="Special">FALSE </span><span class="Statement">'</span><span class="Constant">BBC Radio 4</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">6912</span><span class="Statement">'</span><span class="Special"> \</span>
<span class="Special">FALSE </span><span class="Statement">'</span><span class="Constant">BBC Radio 4 Extra</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">5824</span><span class="Statement">'</span><span class="Special"> \</span>
<span class="Special">FALSE </span><span class="Statement">'</span><span class="Constant">BBC World Service</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">6016</span><span class="Statement">'</span><span class="Special"> \</span>
<span class="Special">FALSE </span><span class="Statement">'</span><span class="Constant">BBC Radio 5 Live</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">5632</span><span class="Statement">'</span><span class="Special"> \</span>
<span class="Special">FALSE </span><span class="Statement">'</span><span class="Constant">BBC Radio 5 Sport</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">5696</span><span class="Statement">'</span><span class="Special"> \</span>
<span class="Special">FALSE </span><span class="Statement">'</span><span class="Constant">BBC Radio 6 Music</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">5760</span><span class="Statement">'</span><span class="Special"> \</span>
<span class="Special">FALSE </span><span class="Statement">'</span><span class="Constant">BBC Manchester</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">6152</span><span class="Statement">'</span><span class="Special"> \</span>
<span class="Special">FALSE </span><span class="Statement">'</span><span class="Constant">BBC Lancashire</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">6216</span><span class="Statement">'</span>
<span class="PreProc">)</span>
<span class="Identifier">}</span>
<span class="Statement">while </span><span class="Statement">true</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span>
<span class="PreProc">(</span><span class="Statement">sleep</span> <span class="Constant">.5</span> <span class="Statement">&&</span> wmctrl <span class="Special">-r</span> <span class="Statement">"</span><span class="Constant">robz DAB Radio</span><span class="Statement">"</span> <span class="Special">-e</span> <span class="Constant">1</span>,<span class="Constant">0</span>,<span class="Constant">0</span>,<span class="Constant">200</span>,<span class="Constant">400</span><span class="PreProc">)</span> <span class="Statement">&</span>
get_mplex
<span class="Identifier">text</span>=<span class="Statement">"</span><span class="Constant"><b>Playing: </span><span class="PreProc">$(</span><span class="Special">cut </span><span class="Special">-d</span><span class="Statement">'</span><span class="Constant">|</span><span class="Statement">'</span><span class="Special"> </span><span class="Special">-f</span><span class="Constant">1</span><span class="Special"> </span><span class="Statement"><<</span><span class="Special">< </span><span class="PreProc">$prog</span><span class="PreProc">)</span><span class="Constant"></b></span><span class="Statement">"</span>
<span class="Identifier">prog</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">cut </span><span class="Special">-d</span><span class="Statement">'</span><span class="Constant">|</span><span class="Statement">'</span><span class="Special"> </span><span class="Special">-f</span><span class="Constant">2</span><span class="Special"> </span><span class="Statement"><<</span><span class="Special">< </span><span class="PreProc">$prog</span><span class="PreProc">)</span><span class="Statement">"</span>
pkill <span class="Constant">-9</span> vlc
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$prog</span><span class="Statement">"</span> <span class="Statement">=</span> <span class="Constant">''</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span> <span class="Statement">exit</span><span class="Statement">;</span> <span class="Statement">fi</span>
<span class="PreProc">(</span>cvlc dvb-t:// <span class="PreProc">$optn$prog</span> > /dev/null <span class="Constant">2</span>><span class="Statement">&</span><span class="Constant">1</span><span class="PreProc">)</span> <span class="Statement">&</span>
<span class="Statement">done</span>
</pre></body><br />
</html>Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-59852194661150209822017-11-15T06:00:00.000-08:002017-11-15T06:06:42.304-08:00Morse 2<style type="text/css"><!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
* { font-size: 1em; }
.PreProc { color: #800080; }
.Statement { color: #a52a2a; font-weight: bold; }
.Comment { color: #0000ff; }
.Constant { color: #ff00ff; }
.Special { color: #6a5acd; }
.Identifier { color: #008b8b; }
-->
</style></head><body><pre id='vimCodeElement'><span></span>
<span class="Comment">#!/bin/bash</span>
<span class="Comment"># Filename: morse2.sh</span>
<span class="Comment"># Version.: 03102017</span>
<span class="Comment"># Author..: robz</span>
<span class="Comment"># Enter words hear morse.</span>
<span class="Statement">trap</span> <span class="Statement">'</span><span class="Constant">kill -9 $pid 2>/dev/null; echo; exit</span><span class="Statement">'</span> TERM EXIT
<span class="Statement">declare</span><span class="Identifier"> </span><span class="Special">-A</span><span class="Identifier"> morse</span>
morse<span class="Statement">[</span>A<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">.-</span><span class="Statement">"</span> morse<span class="Statement">[</span>B<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">-...</span><span class="Statement">"</span> morse<span class="Statement">[</span>C<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">-.-.</span><span class="Statement">"</span> morse<span class="Statement">[</span>D<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">-..</span><span class="Statement">"</span>
morse<span class="Statement">[</span>E<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">.</span><span class="Statement">"</span> morse<span class="Statement">[</span>F<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">..-.</span><span class="Statement">"</span> morse<span class="Statement">[</span>G<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">--.</span><span class="Statement">"</span> morse<span class="Statement">[</span>H<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">....</span><span class="Statement">"</span>
morse<span class="Statement">[</span>I<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">..</span><span class="Statement">"</span> morse<span class="Statement">[</span>J<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">.---</span><span class="Statement">"</span> morse<span class="Statement">[</span>K<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">-.-</span><span class="Statement">"</span> morse<span class="Statement">[</span>L<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">.-..</span><span class="Statement">"</span>
morse<span class="Statement">[</span>M<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">--</span><span class="Statement">"</span> morse<span class="Statement">[</span>N<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">-.</span><span class="Statement">"</span> morse<span class="Statement">[</span>O<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">---</span><span class="Statement">"</span> morse<span class="Statement">[</span>P<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">.--.</span><span class="Statement">"</span>
morse<span class="Statement">[</span>Q<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">--.-</span><span class="Statement">"</span> morse<span class="Statement">[</span>R<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">.-.</span><span class="Statement">"</span> morse<span class="Statement">[</span>S<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">...</span><span class="Statement">"</span> morse<span class="Statement">[</span>T<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">-</span><span class="Statement">"</span>
morse<span class="Statement">[</span>U<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">..-</span><span class="Statement">"</span> morse<span class="Statement">[</span>V<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">...-</span><span class="Statement">"</span> morse<span class="Statement">[</span>W<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">.--</span><span class="Statement">"</span> morse<span class="Statement">[</span>X<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">-..-</span><span class="Statement">"</span>
morse<span class="Statement">[</span>Y<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">-.--</span><span class="Statement">"</span> morse<span class="Statement">[</span>Z<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">--..</span><span class="Statement">"</span> morse<span class="Statement">[</span><span class="Constant">1</span><span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">.----</span><span class="Statement">"</span> morse<span class="Statement">[</span><span class="Constant">2</span><span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">..---</span><span class="Statement">"</span>
morse<span class="Statement">[</span><span class="Constant">3</span><span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">...--</span><span class="Statement">"</span> morse<span class="Statement">[</span><span class="Constant">4</span><span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">....-</span><span class="Statement">"</span> morse<span class="Statement">[</span><span class="Constant">5</span><span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">.....</span><span class="Statement">"</span> morse<span class="Statement">[</span><span class="Constant">6</span><span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">-....</span><span class="Statement">"</span>
morse<span class="Statement">[</span><span class="Constant">7</span><span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">--...</span><span class="Statement">"</span> morse<span class="Statement">[</span><span class="Constant">8</span><span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">---..</span><span class="Statement">"</span> morse<span class="Statement">[</span><span class="Constant">9</span><span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">----.</span><span class="Statement">"</span> morse<span class="Statement">[</span><span class="Constant">0</span><span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">-----</span><span class="Statement">"</span>
morse<span class="Statement">[</span>.<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">.-.-.-</span><span class="Statement">"</span> morse<span class="Statement">[</span>,<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">--..--</span><span class="Statement">"</span> morse<span class="Statement">[</span>?<span class="Statement">]</span><span class="Statement">=</span><span class="Statement">"</span><span class="Constant">..--..</span><span class="Statement">"</span>
<span class="Statement">while </span><span class="Statement">true</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span>
<span class="Statement">read</span> <span class="Statement">-p</span> <span class="Statement">"</span><span class="Constant">Input a word or sentence: </span><span class="Statement">"</span> input
<span class="Statement">echo</span>
<span class="Statement">while </span><span class="Statement">read</span><span class="Statement"> </span><span class="Special">-n</span><span class="Constant">1</span><span class="Statement"> character</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span>
<span class="Identifier">character</span>=<span class="Statement">"</span><span class="PreProc">${</span><span class="PreProc">character</span><span class="Statement">^^</span><span class="PreProc">}</span><span class="Statement">"</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$character</span><span class="Statement">"</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span>
<span class="Statement">echo</span><span class="Constant"> -ne </span><span class="Statement">"</span><span class="Constant"> </span><span class="PreProc">$character</span><span class="Special">\t</span><span class="Statement">"</span>
<span class="Statement">while </span><span class="Statement">read</span><span class="Statement"> </span><span class="Special">-n</span><span class="Constant">1</span><span class="Statement"> dotdash</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span>
tput bold
<span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$dotdash</span><span class="Statement">"</span> <span class="Statement">=</span> <span class="Constant">"."</span> <span class="Statement">]</span> <span class="Statement">&&</span> <span class="Identifier">duration</span>=<span class="Statement">"</span><span class="Constant">0.2</span><span class="Statement">"</span> <span class="Statement">||</span> <span class="Identifier">duration</span>=<span class="Statement">"</span><span class="Constant">0.4</span><span class="Statement">"</span>
<span class="Statement">echo</span><span class="Constant"> -n </span><span class="Statement">"</span><span class="PreProc">$dotdash</span><span class="Statement">"</span>
<span class="PreProc">(</span>speaker-test <span class="Special">-t</span> sine <span class="Special">-f</span> <span class="Constant">400</span> >/dev/null<span class="PreProc">)</span> <span class="Statement">&</span> <span class="Identifier">pid</span>=<span class="Statement">"</span><span class="PreProc">$!</span><span class="Statement">"</span><span class="Statement">;</span>\
<span class="Statement">sleep</span> <span class="Statement">"</span><span class="PreProc">$duration</span><span class="Statement">"</span><span class="Statement">;</span> <span class="Statement">kill</span> <span class="Constant">-9</span> <span class="Statement">"</span><span class="PreProc">$pid</span><span class="Statement">"</span>
tput sgr<span class="Constant">0</span>
<span class="Statement">done</span> <span class="Statement"><</span> <span class="Statement"><</span><span class="PreProc">(</span><span class="Statement">echo</span><span class="Constant"> -n </span><span class="Statement">"</span><span class="PreProc">${</span><span class="PreProc">morse</span><span class="PreProc">[</span><span class="PreProc">$character</span><span class="PreProc">]</span><span class="PreProc">}</span><span class="Statement">"</span><span class="PreProc">)</span>
<span class="Statement">sleep</span> <span class="Constant">0.2</span><span class="Statement">;</span> <span class="Statement">echo</span>
<span class="Statement">else</span> <span class="Statement">sleep</span> <span class="Constant">0.4</span><span class="Statement">;</span> <span class="Statement">echo</span>
<span class="Statement">fi</span> <span class="Constant">2</span><span class="Statement">></span> /dev/null
<span class="Statement">done</span> <span class="Statement"><</span> <span class="Statement"><</span><span class="PreProc">(</span><span class="Statement">echo</span><span class="Constant"> -n </span><span class="Statement">"</span><span class="PreProc">$input</span><span class="Statement">"</span><span class="PreProc">)</span>
<span class="Statement">echo</span>
<span class="Statement">done</span>
</pre></body></html>Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-69050064907412838642017-11-15T05:49:00.000-08:002017-11-15T06:15:34.708-08:00Morse<style type="text/css"><!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
* { font-size: 1em; }
.Constant { color: #ff00ff; }
.PreProc { color: #800080; }
.Statement { color: #a52a2a; font-weight: bold; }
.Comment { color: #0000ff; }
.Special { color: #6a5acd; }
.Identifier { color: #008b8b; }
--></style><pre id='vimCodeElement'></head><body>
<span class="Comment">#!/bin/bash</span>
<span class="Comment"># Filename: morse.sh</span>
<span class="Comment"># Version.: 01102017</span>
<span class="Comment"># Author..: robz</span>
<span class="Comment"># Training aid to print out and recite morse code in a terminal.</span>
<span class="Comment"># Get stuff "sudo apt install espeak"</span>
<span class="Identifier">tabs</span>=<span class="Statement">"</span><span class="Special">\n</span><span class="Statement">"</span>
<span class="Identifier">code</span>=<span class="PreProc">(</span>A .- B -... C -.-. D -.. E . F ..-. G <span class="Special">--.</span> H .... I .. J .--- K -.- \
L .-.. M <span class="Special">--</span> N -. O <span class="Special">---</span> P .--. Q <span class="Special">--.-</span> R .-. S ... T - U ..- V ...- W .-- X -..- \
Y -.-- Z <span class="Special">--..</span> <span class="Constant">1</span> .---- <span class="Constant">2</span> ..--- <span class="Constant">3</span> ...-- <span class="Constant">4</span> ....- <span class="Constant">5</span> ..... <span class="Constant">6</span> -.... <span class="Constant">7</span> <span class="Special">--...</span> <span class="Constant">8</span> <span class="Special">---..</span> \
<span class="Constant">9</span> <span class="Special">----.</span> <span class="Constant">0</span> <span class="Special">-----</span> <span class="Statement">stop</span> .-.-.- comma <span class="Special">--..--</span> query ..--..<span class="PreProc">)</span>
<span class="Statement">trap</span> <span class="Statement">'</span><span class="Constant">kill -9 $pid 2>/dev/null; exit</span><span class="Statement">'</span> TERM EXIT
<span class="Statement">for</span> character <span class="Statement">in</span> <span class="Special">{</span><span class="PreProc">0</span>.<span class="Constant">.78</span>.<span class="Constant">.2</span><span class="Special">}</span>; <span class="Statement">do</span>
<span class="Statement">echo</span><span class="Constant"> -ne </span><span class="Statement">"</span><span class="PreProc">$tabs</span><span class="Constant"> </span><span class="PreProc">${</span><span class="PreProc">code</span><span class="PreProc">[</span>character<span class="PreProc">]</span><span class="PreProc">}</span><span class="Special">\t</span><span class="Statement">"</span>
espeak <span class="Statement">-a</span> <span class="Constant">400</span> <span class="Statement">"</span><span class="PreProc">${</span><span class="PreProc">code</span><span class="PreProc">[</span>character<span class="PreProc">]</span><span class="PreProc">}</span><span class="Statement">"</span>
tput bold
<span class="Statement">while </span><span class="Statement">read</span><span class="Statement"> </span><span class="Special">-n</span><span class="Constant">1</span><span class="Statement"> dotdash</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span>
<span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$dotdash</span><span class="Statement">"</span> <span class="Statement">=</span> <span class="Constant">"."</span> <span class="Statement">]</span> <span class="Statement">&&</span> <span class="Identifier">duration</span>=<span class="Statement">"</span><span class="Constant">0.2</span><span class="Statement">"</span> <span class="Statement">||</span> <span class="Identifier">duration</span>=<span class="Statement">"</span><span class="Constant">0.4</span><span class="Statement">"</span>
<span class="Statement">echo</span><span class="Constant"> -n </span><span class="Statement">"</span><span class="PreProc">$dotdash</span><span class="Statement">"</span>
<span class="PreProc">(</span>speaker-test <span class="Special">-t</span> sine <span class="Special">-f</span> <span class="Constant">400</span> >/dev/null<span class="PreProc">)</span> <span class="Statement">&</span> <span class="Identifier">pid</span>=<span class="Statement">"</span><span class="PreProc">$!</span><span class="Statement">"</span><span class="Statement">;</span>\
<span class="Statement">sleep</span> <span class="Statement">"</span><span class="PreProc">$duration</span><span class="Statement">"</span><span class="Statement">;</span> <span class="Statement">kill</span> <span class="Constant">-9</span> <span class="Statement">"</span><span class="PreProc">$pid</span><span class="Statement">"</span>
<span class="Statement">done</span> <span class="Statement"><</span> <span class="Statement"><</span><span class="PreProc">(</span><span class="Statement">echo</span><span class="Constant"> -n </span><span class="Statement">"</span><span class="PreProc">${</span><span class="PreProc">code</span><span class="PreProc">[</span>(<span class="PreProc">(</span>character+<span class="Constant">1</span><span class="PreProc">)</span>)<span class="PreProc">]</span><span class="PreProc">}</span><span class="Statement">"</span><span class="PreProc">)</span>
tput sgr<span class="Constant">0</span>
<span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$tabs</span><span class="Statement">"</span> <span class="Statement">=</span> <span class="Constant">"\n"</span> <span class="Statement">]</span> <span class="Statement">&&</span> <span class="Identifier">tabs</span>=<span class="Statement">"</span><span class="Special">\t</span><span class="Constant">|</span><span class="Special">\t</span><span class="Statement">"</span> <span class="Statement">||</span> <span class="Identifier">tabs</span>=<span class="Statement">"</span><span class="Special">\n</span><span class="Statement">"</span>
<span class="Statement">sleep</span> <span class="Constant">1</span>
<span class="Statement">done</span> <span class="Constant">2</span><span class="Statement">></span> /dev/null
<span class="Statement">echo</span><span class="Constant"> -e </span><span class="Statement">"</span><span class="Special">\n\n</span><span class="Constant">End of morse code demo.</span><span class="Special">\n</span><span class="Statement">"</span>
<span class="Statement">exit</span>
</pre></body><br />
</html>Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-78035062992698516052017-07-23T02:57:00.000-07:002017-07-23T03:02:16.624-07:00Raspberry Pi SSH<style type="text/css">
<!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
* { font-size: 1em; }
.PreProc { color: #800080; }
.Statement { color: #a52a2a; font-weight: bold; }
.Comment { color: #0000ff; }
.Constant { color: #ff00ff; }
.Special { color: #6a5acd; }
.Identifier { color: #008b8b; }
-->
</style><br />
<body><pre><span class="Comment">#!/bin/bash</span>
<span class="Comment"># Filename: motd.sh</span>
<span class="Comment"># Version : 23072017</span>
<span class="Comment"># Author : robz</span>
<span class="Comment"># Raspberry Pi landing page SSH login script.</span>
<span class="Comment"># Place this file in /etc/profile.d/ and set the executable bit.</span>
<span class="Comment"># Interactive message of the day to display on secure shell login.</span>
<span class="Comment"># It provides commands for control of "new-pvr.sh" PVR script.</span>
<span class="Comment"># Add an alias to your .bashrc to call "motd.sh" info and menu.</span>
<span class="Comment"># alias 1='/etc/profile.d/motd.sh'</span>
<span class="Comment"># Then execute ". ~/.bashrc"</span>
sudo <span class="Statement">killall</span> <span class="Special">-qg</span> countLED.sh <span class="Statement">></span>/dev/null <span class="Constant">2</span><span class="Statement">>&1</span>
<span class="Statement">printf</span> <span class="Statement">"</span><span class="Special">\033</span><span class="Constant">c</span><span class="Statement">"</span>
<span class="Identifier">re</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">tput setaf </span><span class="Constant">1</span><span class="PreProc">)</span><span class="Statement">"</span>; <span class="Identifier">gr</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">tput setaf </span><span class="Constant">2</span><span class="PreProc">)</span><span class="Statement">"</span>; <span class="Identifier">ye</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">tput setaf </span><span class="Constant">3</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Identifier">bl</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">tput setaf </span><span class="Constant">4</span><span class="PreProc">)</span><span class="Statement">"</span>; <span class="Identifier">mg</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">tput setaf </span><span class="Constant">5</span><span class="PreProc">)</span><span class="Statement">"</span>; <span class="Identifier">cy</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">tput setaf </span><span class="Constant">6</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Identifier">gy</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">tput setaf </span><span class="Constant">7</span><span class="PreProc">)</span><span class="Statement">"</span>; <span class="Identifier">wh</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">tput setaf </span><span class="Constant">9</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Identifier">myip</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">ifconfig eth0 | awk </span><span class="Statement">'</span><span class="Constant">/inet/{print $2}</span><span class="Statement">'</span><span class="Special"> | cut </span><span class="Special">-d</span><span class="Special">: </span><span class="Special">-f2</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Identifier">boot</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">date </span><span class="Special">-d</span><span class="Special"> </span><span class="Statement">"</span><span class="Constant">@</span><span class="Statement">"</span><span class="Special">$</span><span class="PreProc">(</span>awk <span class="Statement">'</span><span class="Constant">/btime/{print $2}</span><span class="Statement">'</span> /proc/stat<span class="PreProc">)</span><span class="Special"> +</span><span class="Statement">"</span><span class="Constant">%d/%m/%y at %H:%M</span><span class="Statement">"</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Identifier">last</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">last </span><span class="Special">-i</span><span class="Special"> $</span><span class="PreProc">(</span>whoami<span class="PreProc">)</span><span class="Special"> | awk </span><span class="Statement">'</span><span class="Constant">NR==2 {print $1,$3,$4,$5,$6,$7}</span><span class="Statement">'</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Identifier">uptm</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">awk </span><span class="Statement">'</span><span class="Constant">{print int($1/86400)" days, "int($1%86400/3600)" hours, "int($1%3600/60)" minutes"}</span><span class="Statement">'</span><span class="Special"> /proc/uptime</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Identifier">memo</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">free </span><span class="Special">-m</span><span class="Special"> | awk </span><span class="Statement">'</span><span class="Constant">NR==2 {print "Total: "$2"MB, Used: "$3"MB, Free: "$4"MB"}</span><span class="Statement">'</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Identifier">free</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">df </span><span class="Special">-h</span><span class="Special"> ~ | awk </span><span class="Statement">'</span><span class="Constant">NR==2 {print "Total: "$2"B, Used: "$3"B, Free: "$4"B"}</span><span class="Statement">'</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Identifier">stor</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">df </span><span class="Special">-h</span><span class="Special"> /dev/sda1 | awk </span><span class="Statement">'</span><span class="Constant">NR==2 {print "Total: "$2"B, Used: "$3"B, Free: "$4"B"}</span><span class="Statement">'</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Identifier">temp</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">/opt/vc/bin/vcgencmd measure_temp | cut </span><span class="Special">-c</span><span class="Special"> </span><span class="Statement">"</span><span class="Constant">6-9</span><span class="Statement">"</span><span class="PreProc">)</span><span class="Constant">ºC</span><span class="Statement">"</span>
<span class="Identifier">sess</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">cat /home/pi/Downloads/log/motd.txt</span><span class="PreProc">)</span><span class="Statement">"</span>
tput bold
<span class="Statement">printf</span> <span class="Statement">"</span><span class="PreProc">$bl</span><span class="Statement">""</span><span class="Constant">%</span><span class="Special">`tput cols`</span><span class="Constant">s</span><span class="Statement">"</span> | tr <span class="Statement">'</span><span class="Constant"> </span><span class="Statement">'</span> <span class="Statement">'</span><span class="Constant">_</span><span class="Statement">'</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$gr</span>
<span class="Constant"> .~~. .~~.</span>
<span class="Constant"> '. </span><span class="Special">\ </span><span class="Constant">' ' / .' </span><span class="PreProc">$re</span>
<span class="Constant"> .~ .~~~..~. </span><span class="PreProc">$re</span><span class="Constant"> Raspberry Pi</span><span class="PreProc">$wh</span><span class="Constant"> Torrent Box</span><span class="PreProc">$re</span>
<span class="Constant"> : .~.'~'.~. : </span><span class="PreProc">$wh</span><span class="Constant"> a.k.a. pi@</span><span class="PreProc">$myip$re</span>
<span class="Constant"> ~ ( ) ( ) ~ </span><span class="PreProc">$wh</span><span class="Constant"> on robz home network.</span><span class="PreProc">$re</span>
<span class="Constant"> ( : '~'.~.'~' : )</span><span class="PreProc">$wh</span><span class="Constant"> Welcome back! login: </span><span class="PreProc">$(</span><span class="Special">whoami</span><span class="PreProc">)</span><span class="PreProc">$re</span>
<span class="Constant"> ~ .~ ( ) ~. ~ </span><span class="PreProc">$wh</span><span class="Constant"> </span><span class="PreProc">$(</span><span class="Special">date +</span><span class="Statement">"</span><span class="Constant">%A %d %b %Y %H:%M</span><span class="Statement">"</span><span class="PreProc">)</span><span class="PreProc">$re</span>
<span class="Constant"> ( : '~' : ) </span><span class="PreProc">$wh</span><span class="Constant"> </span><span class="PreProc">$(</span><span class="Statement">echo</span><span class="Constant"> Kernel </span><span class="PreProc">$(</span><span class="Special">uname </span><span class="Special">-ro</span><span class="PreProc">))</span><span class="PreProc">$re</span>
<span class="Constant"> '~ .~~~. ~'</span>
<span class="Constant"> '~'</span>
<span class="PreProc">$ye</span><span class="Constant"> Last Login....:</span><span class="PreProc">$bl</span><span class="Constant"> </span><span class="PreProc">$last</span>
<span class="PreProc">$ye</span><span class="Constant"> Last boot.....:</span><span class="PreProc">$bl</span><span class="Constant"> </span><span class="PreProc">$boot</span>
<span class="PreProc">$ye</span><span class="Constant"> Uptime........:</span><span class="PreProc">$bl</span><span class="Constant"> </span><span class="PreProc">$uptm</span>
<span class="PreProc">$ye</span><span class="Constant"> Memory........:</span><span class="PreProc">$bl</span><span class="Constant"> </span><span class="PreProc">$memo</span>
<span class="PreProc">$ye</span><span class="Constant"> Home space....:</span><span class="PreProc">$bl</span><span class="Constant"> </span><span class="PreProc">$free</span>
<span class="PreProc">$ye</span><span class="Constant"> USB storage...:</span><span class="PreProc">$bl</span><span class="Constant"> </span><span class="PreProc">$stor</span>
<span class="PreProc">$ye</span><span class="Constant"> Temperature...:</span><span class="PreProc">$bl</span><span class="Constant"> </span><span class="PreProc">$temp</span>
<span class="Statement">"</span>
tput sgr0
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$wh$sess</span><span class="Statement">"</span>
<span class="Statement">echo</span>
<span class="Statement">echo</span><span class="Constant"> -e </span><span class="Statement">"</span><span class="Constant"> User PVR commands, the </span><span class="Special">\"</span><span class="Comment">#\" or \"Enter\" for a shell prompt.\n\</span>
<span class="Constant"> 1) - Display this </span><span class="Special">\"</span><span class="Constant">motd</span><span class="Special">\"</span><span class="Constant"> message. \</span>
<span class="Constant"> 2) - Nano edit add-magnet.txt.</span><span class="Special">\n</span><span class="Constant">\</span>
<span class="Constant"> 3) - View today's session log. \</span>
<span class="Constant"> 4) - Nano edit followed-shows.txt.</span><span class="Special">\n</span><span class="Constant">\</span>
<span class="Constant"> 5) - List recently downloaded. \</span>
<span class="Constant"> 6) - List the </span><span class="Special">\"</span><span class="Constant">Watch</span><span class="Special">\"</span><span class="Constant"> directory.</span><span class="Special">\n</span><span class="Constant">\</span>
<span class="Constant"> 7) - View rss-today.txt file. \</span>
<span class="Constant"> 8) - Run </span><span class="Special">\"</span><span class="Constant">TED Talks</span><span class="Special">\"</span><span class="Constant"> downloader.</span><span class="Statement">"</span>
tput bold
<span class="Statement">printf</span> <span class="Statement">"</span><span class="PreProc">$bl</span><span class="Statement">""</span><span class="Constant">%</span><span class="Special">`tput cols`</span><span class="Constant">s</span><span class="Statement">"</span> | tr <span class="Statement">'</span><span class="Constant"> </span><span class="Statement">'</span> <span class="Statement">'</span><span class="Constant">_</span><span class="Statement">'</span>
<span class="Statement">read</span> <span class="Special">-n1</span> n
<span class="Statement">printf</span> <span class="Statement">"</span><span class="Special">\033</span><span class="Constant">c</span><span class="Statement">"</span>
<span class="Statement">case</span> <span class="PreProc">$n</span> <span class="Statement">in</span>
1<span class="Statement">)</span> /etc/profile.d/motd.sh<span class="Statement">;;</span>
2<span class="Statement">)</span> nano ~/Downloads/scripts/add-magnet.txt<span class="Statement">;;</span>
3<span class="Statement">)</span> cat ~/Downloads/log/<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">date +%a-%-d%b</span><span class="PreProc">)</span><span class="Statement">"</span>*runlog.txt; <span class="Statement">read</span> <span class="Special">-n1</span><span class="Statement">;;</span>
4<span class="Statement">)</span> nano ~/Downloads/scripts/followed-shows.txt<span class="Statement">;;</span>
5<span class="Statement">)</span> <span class="Statement">echo</span><span class="Constant"> -e </span><span class="Statement">"</span><span class="Special">\n</span><span class="Constant">Recently Downloaded</span><span class="Special">\n</span><span class="Statement">"</span>
tac ~/Downloads/log/rec.txt; <span class="Statement">read</span> <span class="Special">-n1</span><span class="Statement">;;</span>
6<span class="Statement">)</span> <span class="Statement">echo</span><span class="Constant"> -e </span><span class="Statement">"</span><span class="Special">\n</span><span class="Constant">Trackers in </span><span class="Special">\"</span><span class="Constant">Watch</span><span class="Special">\"</span><span class="Constant"> directory</span><span class="Special">\n</span><span class="Statement">"</span>
<span class="Statement">ls</span> Downloads/Watch; <span class="Statement">read</span> <span class="Special">-n1</span><span class="Statement">;;</span>
7<span class="Statement">)</span> cat ~/Downloads/log/rss-today.txt; <span class="Statement">read</span> <span class="Special">-n1</span><span class="Statement">;;</span>
8<span class="Statement">)</span> /home/pi/Downloads/scripts/ted-talks.sh; <span class="Statement">read</span> <span class="Special">-n1</span><span class="Statement">;;</span>
<span class="Statement">""</span><span class="Statement">)</span> <span class="Statement">killall</span> motd.sh<span class="Statement">;;</span>
<span class="Statement">esac</span>
/etc/profile.d/motd.sh
<span class="Comment"># Add this alias to your .bashrc to call "motd.sh" info and menu.</span>
<span class="Comment"># alias 1='/etc/profile.d/motd.sh'</span>
<span class="Comment"># Then execute ". ~/.bashrc"</span>
</pre></body><br />
<br />
Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-85140552937022859872017-04-19T06:20:00.001-07:002017-04-19T06:20:20.903-07:00Timer Mk3<style><!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
* { font-size: 1em; }
.Error { color: #ffffff; background-color: #ff0000; padding-bottom: 1px; }
.Statement { color: #a52a2a; font-weight: bold; }
.Comment { color: #0000ff; }
.Constant { color: #ff00ff; }
.Special { color: #6a5acd; }
.PreProc { color: #800080; }
.Identifier { color: #008b8b; }
-->
</style><body><br />
<pre id="vimCodeElement"><span class="Comment">#!/bin/bash</span>
<span class="Comment"># Filename: progbar-timer.sh</span>
<span class="Comment"># Version.: 19042017</span>
<span class="Comment"># Author..: robz</span>
<span class="Comment"># What another one!</span>
<span class="Comment"># Improved from the "Egg Timer" script, a countdown timer with progress bar.</span>
<span class="Comment"># This one has an indication of time remaining provided by Zenity's progress</span>
<span class="Comment"># bar function. You'll need to choose a sound file below and maybe fiddle with</span>
<span class="Comment"># the vector_tl function x&y coordinates.</span>
vector_tl <span class="PreProc">()</span> <span class="Comment"># Dialog to top left.</span>
<span class="Special">{</span>
<span class="Identifier">x</span>=<span class="Statement">"</span><span class="Constant">541</span><span class="Statement">"</span><span class="Statement">;</span> <span class="Identifier">y</span>=<span class="Statement">"</span><span class="Constant">315</span><span class="Statement">"</span>
<span class="Statement">until </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$x</span><span class="Statement">"</span> <span class="Statement">-lt</span> <span class="Statement">"</span><span class="Constant">0</span><span class="Statement">"</span> <span class="Statement">]</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span>
wmctrl <span class="Statement">-r</span> <span class="Statement">"</span><span class="Constant">Egg Timer Mk3</span><span class="Statement">"</span> <span class="Statement">-e</span> <span class="Constant">0</span>,<span class="Statement">"</span><span class="PreProc">$x</span><span class="Statement">"</span>,<span class="Statement">"</span><span class="PreProc">$y</span><span class="Statement">"</span>,<span class="Constant">210</span>,<span class="Constant">129</span>
<span class="Statement">(</span><span class="PreProc">(</span>x<span class="Statement">-=</span><span class="Constant">30</span><span class="PreProc">)</span><span class="Statement">)</span><span class="Statement">;</span> <span class="Statement">(</span><span class="PreProc">(</span>y<span class="Statement">-=</span><span class="Constant">18</span><span class="PreProc">)</span><span class="Statement">)</span>
<span class="Statement">done</span>
<span class="Special">}</span>
<span class="Identifier">count</span>=<span class="PreProc">$(</span><span class="Special">zenity </span><span class="Special">--title</span><span class="Special"> </span><span class="Statement">"</span><span class="Constant">Egg Timer Mk3</span><span class="Statement">"</span><span class="Special"> </span><span class="Special">--text</span><span class="Special"> </span><span class="Statement">"</span><span class="Constant">Decimals allowed Min/Hrs</span><span class="Statement">"</span><span class="Special">\</span>
<span class="Special"> </span><span class="Special">--entry-text</span><span class="Special"> </span><span class="Statement">"</span><span class="Constant">eg. 10s or 5m or 2h</span><span class="Statement">"</span><span class="Special"> </span><span class="Special">--entry</span><span class="PreProc">)</span> <span class="Comment"># Input dialogue.</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="PreProc">$?</span> <span class="Statement">=</span> <span class="Constant">1</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span> <span class="Statement">exit</span> <span class="PreProc">$?</span><span class="Statement">;</span> <span class="Statement">fi</span>
<span class="Comment"># Determine number of seconds to count down from depending on input suffix.</span>
<span class="Statement">case</span> <span class="Statement">"</span><span class="PreProc">${</span><span class="PreProc">count: -1</span><span class="PreProc">}</span><span class="Statement">"</span> <span class="Statement">in</span>
<span class="Statement">"</span><span class="Constant">S</span><span class="Statement">"</span> <span class="Statement">|</span> <span class="Statement">"</span><span class="Constant">s</span><span class="Statement">"</span> <span class="Statement">)</span> <span class="Identifier">count</span>=<span class="PreProc">$(</span><span class="Statement">echo</span><span class="Constant"> </span><span class="PreProc">${</span><span class="PreProc">count</span><span class="Statement">%</span>?<span class="PreProc">}</span><span class="Constant">/1 </span><span class="Statement">|</span><span class="Special"> bc</span><span class="PreProc">)</span> <span class="Statement">;;</span>
<span class="Statement">"</span><span class="Constant">M</span><span class="Statement">"</span> <span class="Statement">|</span> <span class="Statement">"</span><span class="Constant">m</span><span class="Statement">"</span> <span class="Statement">)</span> <span class="Identifier">count</span>=<span class="PreProc">$(</span><span class="Statement">echo</span><span class="Constant"> </span><span class="PreProc">${</span><span class="PreProc">count</span><span class="Statement">%</span>?<span class="PreProc">}</span><span class="Constant">*60/1 </span><span class="Statement">|</span><span class="Special"> bc</span><span class="PreProc">)</span> <span class="Statement">;;</span>
<span class="Statement">"</span><span class="Constant">H</span><span class="Statement">"</span> <span class="Statement">|</span> <span class="Statement">"</span><span class="Constant">h</span><span class="Statement">"</span> <span class="Statement">)</span> <span class="Identifier">count</span>=<span class="PreProc">$(</span><span class="Statement">echo</span><span class="Constant"> </span><span class="PreProc">${</span><span class="PreProc">count</span><span class="Statement">%</span>?<span class="PreProc">}</span><span class="Constant">*3600/1 </span><span class="Statement">|</span><span class="Special"> bc</span><span class="PreProc">)</span> <span class="Statement">;;</span>
* <span class="Statement">)</span> zenity <span class="Special">--error</span> <span class="Special">--text</span> <span class="Statement">"</span><span class="Constant"><span color=</span><span class="Special">\"</span><span class="Constant">red</span><span class="Special">\"</span><span class="Constant">><b>\</span>
<span class="Constant"> </span><span class="Special">\n</span><span class="Constant">Use the form of 10s or 5m or 2h</span><span class="Special">\n</span><span class="Constant">Decimals allowed Min/Hrs.</b></span></span><span class="Statement">"</span>
sh <span class="Special">-c</span> <span class="Statement">"</span><span class="PreProc">$0</span><span class="Statement">"</span> <span class="Comment"># On error restart.</span>
<span class="Statement">exit</span> <span class="Statement">;;</span>
<span class="Statement">esac</span>
<span class="PreProc">(</span><span class="Statement">sleep</span><span class="Special"> </span><span class="Constant">1</span><span class="Special"> </span><span class="Statement">&&</span><span class="Special"> vector_tl</span><span class="PreProc">)</span> &
<span class="Statement">start</span><span class="Statement">=</span><span class="PreProc">$count</span> <span class="Comment"># Set a start point.</span>
<span class="Statement">until </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$count</span><span class="Statement">"</span> <span class="Statement">-eq</span> <span class="Statement">"</span><span class="Constant">0</span><span class="Statement">"</span> <span class="Statement">]</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span> <span class="Comment"># countdown loop.</span>
<span class="Statement">(</span><span class="PreProc">(</span>count<span class="Statement">-=</span><span class="Constant">1</span><span class="PreProc">)</span><span class="Statement">)</span> <span class="Comment"># Decrement seconds.</span>
<span class="Identifier">percent</span>=<span class="PreProc">$((</span><span class="Constant">100</span><span class="Special">*count/start</span><span class="PreProc">))</span> <span class="Comment"># Calc percentage.</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant">#Time remaining:</span><span class="PreProc">$(</span><span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant">obase=60;</span><span class="PreProc">$count</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">|</span><span class="Special"> bc</span><span class="PreProc">)</span><span class="Statement">"</span> <span class="Comment"># Convert to H:M:S.</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="PreProc">$percent</span><span class="Constant"> </span> <span class="Comment"># Outut for progbar.</span>
<span class="Statement">sleep</span> <span class="Constant">1</span>
<span class="Statement">done</span> | zenity <span class="Special">--title</span> <span class="Statement">"</span><span class="Constant">Egg Timer Mk3</span><span class="Statement">"</span> <span class="Special">--progress</span> <span class="Special">--percentage=0</span> <span class="Special">--text=</span><span class="Statement">""</span><span class="Statement">\</span>
<span class="Special">--auto-close</span> <span class="Comment"># Progbar/time left.</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="PreProc">$?</span> <span class="Statement">=</span> <span class="Constant">1</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span> <span class="Statement">exit</span> <span class="PreProc">$?</span><span class="Statement">;</span> <span class="Statement">fi</span>
zenity <span class="Special">--info</span> <span class="Special">--title</span> <span class="Statement">"</span><span class="Constant">Egg Timer Mk3</span><span class="Statement">"</span> <span class="Special">--text</span> <span class="Statement">"</span><span class="Constant">## TIMES UP ##</span><span class="Statement">"</span> &
play <span class="PreProc">$HOME</span>/Scripts/glass_ping.wav <span class="Comment"># Ping sound finish!</span>
vector_tl
<span class="Statement">exit</span>
</pre></body><br />
<br />
Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-38077621106411602212017-03-11T03:41:00.000-08:002017-03-11T03:43:05.300-08:00Cooler CPU<style type="text/css">
<!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
* { font-size: 1em; }
.Special { color: #6a5acd; }
.Statement { color: #a52a2a; font-weight: bold; }
.Comment { color: #0000ff; }
.Constant { color: #ff00ff; }
.PreProc { color: #800080; }
.Identifier { color: #008b8b; }
-->
</style><br />
<body><pre id="vimCodeElement"><span class="Comment">#!/bin/bash</span>
<span class="Comment"># Filename: cpulimit-ghb.sh</span>
<span class="Comment"># Version.: 09032017</span>
<span class="Comment"># Author..: robz</span>
<span class="Comment"># I know, I'm cheap, I should buy a better than stock cooling fan, but....</span>
<span class="Comment"># Dynamically use the cpulimit utility to keep cpu within a sane temperature</span>
<span class="Comment"># range when using Handbrake or another resource hammering program.</span>
<span class="Comment"># sudo apt install cpulimit lmsensors - use PPA for the latest Handbrake.</span>
<span class="Comment"># Dependant on the output of "sensors" you may need to tweak line ##.</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$UID</span><span class="Statement">"</span> <span class="Statement">!=</span> <span class="Statement">"</span><span class="Constant">0</span><span class="Statement">"</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span> <span class="Comment"># Get root privilege.</span>
sudo <span class="Statement">-k</span><span class="Statement">;</span> <span class="Statement">exec</span> gksudo <span class="Special">--message</span> <span class="Statement">"</span><span class="PreProc">$(</span><span class="Statement">echo</span><span class="Constant">\</span>
<span class="Constant"> </span><span class="Statement">'</span><span class="Constant">Enter your password please, you need root</span><span class="Statement">'</span><span class="Statement">;</span><span class="Special">\</span>
<span class="Special"> </span><span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">'</span><span class="Constant">privileges to run cpulimit effectively.</span><span class="Statement">'</span><span class="PreProc">)</span><span class="Statement">"</span>\
<span class="Statement">"</span><span class="PreProc">$0</span><span class="Statement">"</span>
<span class="Statement">fi</span>
<span class="Identifier">max</span>=<span class="Statement">'</span><span class="Constant">67</span><span class="Statement">'</span> <span class="Comment"># Maximum temperature°C.</span>
<span class="Identifier">cores</span>=<span class="Statement">'</span><span class="Constant">2</span><span class="Statement">'</span> <span class="Comment"># Number of cpu cores.</span>
<span class="Identifier">prog</span>=<span class="Statement">'</span><span class="Constant">/usr/bin/ghb</span><span class="Statement">'</span> <span class="Comment"># Program you're limiting.</span>
<span class="Identifier">limit</span>=<span class="PreProc">$((</span><span class="Constant">100</span><span class="Special">*cores</span><span class="PreProc">))</span> <span class="Comment"># Total 100% limit range.</span>
<span class="Identifier">base</span>=<span class="Statement">"</span><span class="PreProc">$limit</span><span class="Statement">"</span>
<span class="Statement">while </span><span class="Special">[[</span> <span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">pidof </span><span class="Statement">"</span><span class="PreProc">$prog</span><span class="Statement">"</span><span class="PreProc">)</span><span class="Statement">"</span> <span class="Special">]]</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span>
<span class="Identifier">temp</span>=<span class="PreProc">$(</span><span class="Special">sensors </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">grep</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">CPU:</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> cut </span><span class="Special">-c</span><span class="Special">18</span><span class="Constant">-19</span><span class="PreProc">)</span> <span class="Comment">## Get cpu temperature.</span>
<span class="Statement">if </span><span class="Special">[[</span> <span class="Statement">"</span><span class="PreProc">$temp</span><span class="Statement">"</span> <span class="Statement">-gt</span> <span class="Statement">"</span><span class="PreProc">$max</span><span class="Statement">"</span> <span class="Constant">&&</span> <span class="Statement">"</span><span class="PreProc">$limit</span><span class="Statement">"</span> <span class="Statement">-gt</span> <span class="Statement">'</span><span class="Constant">25</span><span class="Statement">'</span> <span class="Special">]]</span><span class="Statement">;</span> <span class="Statement">then</span>
<span class="Statement">killall</span> /usr/bin/cpulimit <span class="Comment"># Kill old process.</span>
<span class="Special">((</span>limit<span class="Statement">-=</span><span class="Constant">25</span><span class="Special">))</span> <span class="Comment"># Increment limit down.</span>
cpulimit <span class="Special">-qb</span> <span class="Statement">-P</span> <span class="Statement">"</span><span class="PreProc">$prog</span><span class="Statement">"</span> <span class="Statement">-l</span> <span class="Statement">"</span><span class="PreProc">$limit</span><span class="Statement">"</span> <span class="Comment"># Start new process.</span>
<span class="Statement">elif</span> <span class="Special">[[</span> <span class="Statement">"</span><span class="PreProc">$temp</span><span class="Statement">"</span> <span class="Statement">-lt</span> <span class="Statement">"</span><span class="PreProc">$max</span><span class="Statement">"</span> <span class="Constant">&&</span> <span class="Statement">"</span><span class="PreProc">$limit</span><span class="Statement">"</span> <span class="Statement">-lt</span> <span class="Statement">"</span><span class="PreProc">$base</span><span class="Statement">"</span> <span class="Special">]]</span><span class="Statement">;</span> <span class="Statement">then</span>
<span class="Statement">killall</span> /usr/bin/cpulimit
<span class="Special">((</span>limit<span class="Statement">+=</span><span class="Constant">25</span><span class="Special">))</span> <span class="Comment"># Increment limit up.</span>
cpulimit <span class="Special">-qb</span> <span class="Statement">-P</span> <span class="Statement">"</span><span class="PreProc">$prog</span><span class="Statement">"</span> <span class="Statement">-l</span> <span class="Statement">"</span><span class="PreProc">$limit</span><span class="Statement">"</span>
<span class="Statement">fi</span>
<span class="Statement">sleep</span> <span class="Constant">5</span>
<span class="Statement">done</span>
<span class="Statement">killall</span> /usr/bin/cpulimit
<span class="Statement">exit</span>
</pre></body><br />
<br />
<!-- vim: set foldmethod=manual : -->Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com1tag:blogger.com,1999:blog-762128904635102185.post-32094132540127418982016-09-08T09:23:00.000-07:002016-09-08T09:24:04.818-07:00Report<style type="text/css">
<!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
* { font-size: 1em; }
.PreProc { color: #800080; }
.Statement { color: #a52a2a; font-weight: bold; }
.Comment { color: #0000ff; }
.Constant { color: #ff00ff; }
.Special { color: #6a5acd; }
.Identifier { color: #008b8b; }
-->
</style><br />
</head><body><pre><span class="Comment">#!/bin/bash</span>
<span class="Comment"># Filename: report.sh</span>
<span class="Comment"># Version: 170816</span>
<span class="Comment"># Author: robz</span>
<span class="Comment"># Report for newPVR.sh activity, HTML page served by nginx.</span>
<span class="Comment"># Root crontab</span>
<span class="Comment"># Update index.html page.</span>
<span class="Comment"># @reboot /home/pi/Downloads/scripts/report.sh > /dev/null 2>&1</span>
<span class="Comment"># Kill server.</span>
<span class="Comment"># 00 18 * * * sudo /etc/init.d/nginx stop</span>
<span class="Identifier">boot</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">date </span><span class="Special">-d</span><span class="Special"> </span><span class="Statement">"</span><span class="Constant">@</span><span class="Statement">"</span><span class="Special">$</span><span class="PreProc">(</span>awk <span class="Statement">'</span><span class="Constant">/btime/{print $2}</span><span class="Statement">'</span> /proc/stat<span class="PreProc">)</span><span class="Special"> +</span><span class="Statement">"</span><span class="Constant">%H:%M:%S</span><span class="Statement">"</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Identifier">stor</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">df </span><span class="Special">-h</span><span class="Special"> / | awk </span><span class="Statement">'</span><span class="Constant">NR==2 {print $5}</span><span class="Statement">'</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Identifier">lst1</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">cat </span><span class="Statement">"</span><span class="Constant">/home/pi/Downloads/log/motd.txt</span><span class="Statement">"</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Identifier">lst2</span>=<span class="Statement">"</span><span class="Constant">/home/pi/Downloads/scripts/followed-shows.txt</span><span class="Statement">"</span>
<span class="Identifier">lst2</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Statement">grep</span><span class="Special"> </span><span class="Special">-v</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">^$\|^\s*\#</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$lst2</span><span class="Statement">"</span><span class="Special"> | nl </span><span class="Special">-w3</span><span class="Special"> </span><span class="Special">-s</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">) </span><span class="Statement">'</span><span class="PreProc">)</span><span class="Statement">"</span>
cat <span class="Statement">></span> /usr/share/nginx/www/index.html <span class="Statement"><< EOF</span>
<span class="Constant"><!DOCTYPE html></span>
<span class="Constant"><html></span>
<span class="Constant"><head></span>
<span class="Constant"> <title>robz Report</title></span>
<span class="Constant"> <style></span>
<span class="Constant"> html {</span>
<span class="Constant"> background: url(pi.jpg) no-repeat center center fixed;</span>
<span class="Constant"> background-size: cover;</span>
<span class="Constant"> -webkit-background-size: cover;</span>
<span class="Constant"> -o-background-size: cover;</span>
<span class="Constant"> }</span>
<span class="Constant"> h1 {</span>
<span class="Constant"> color: #BD1143; text-shadow: 2px 2px 1px #FFFFFF;</span>
<span class="Constant"> font-size: 40px; font-style: italic;</span>
<span class="Constant"> }</span>
<span class="Constant"> h3 {</span>
<span class="Constant"> font-style: italic; font-weight: 600;</span>
<span class="Constant"> margin: 0;</span>
<span class="Constant"> }</span>
<span class="Constant"> body {</span>
<span class="Constant"> color: #FFFFFF;</span>
<span class="Constant"> font-family: sans-serif; font-size: 12px; font-weight: 500;</span>
<span class="Constant"> margin-left: 25px;</span>
<span class="Constant"> }</span>
<span class="Constant"> .footer {</span>
<span class="Constant"> color: #BD1143;</span>
<span class="Constant"> font-size: 8px; font-style: italic; font-weight: 700;</span>
<span class="Constant"> position: fixed;</span>
<span class="Constant"> bottom: 5px; right: 5px;</span>
<span class="Constant"> }</span>
<span class="Constant"> </style></span>
<span class="Constant"></head></span>
<span class="Constant"><body></span>
<span class="Constant"><h1>The <img src="pi5.png" align="top" width="34" height="42"> Pi Torrent Box...</span>
<span class="Constant"></h1></span>
<span class="Constant"><pre></span>
<span class="Constant"><h3> Download report for </span><span class="PreProc">$(</span><span class="Special">date +%A</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">"</span><span class="Special">%d</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">"</span><span class="Special">%B</span><span class="PreProc">)</span><span class="Constant"></h3></span>
<span class="Constant"> Machine last rebooted at </span><span class="PreProc">$boot</span><span class="Constant"> - SD card usage is currently at </span><span class="PreProc">$stor</span>
<span class="Constant"><br></span><span class="PreProc">$lst1</span>
<span class="Constant"><br> Tracked shows.:</span>
<span class="Constant"><br></span><span class="PreProc">$lst2</span>
<span class="Constant"></pre></span>
<span class="Constant"><span class="footer">Raspberry powered page by robz</span></span>
<span class="Constant"></body></span>
<span class="Constant"></html></span>
<span class="Statement">EOF</span>
</pre></body><br />
</html><br />
Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-46462016271169645952016-09-08T08:59:00.000-07:002018-07-25T10:56:01.154-07:00New PVR<html><head><style type="text/css"><!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
* { font-size: 1em; }
.Special { color: #6a5acd; }
.Statement { color: #a52a2a; font-weight: bold; }
.Comment { color: #0000ff; }
.Constant { color: #ff00ff; }
.PreProc { color: #800080; }
.Identifier { color: #008b8b; }
-->
</style><br />
</head><body><pre id="vimCodeElement"><span class="Comment">#!/bin/bash</span>
<span class="Comment"># Filename: new-pvr.sh</span>
<span class="Comment"># Version.: 03042018</span>
<span class="Comment"># Author..: robz</span>
<span class="Comment"># WARNING! this works on my system it may break yours, read, check, tweak #####</span>
<span class="Comment"># A torrent box script for a headless Raspberry Pi model B, it auto downloads</span>
<span class="Comment"># media files for show episodes followed, then renames and transfers to NAS.</span>
<span class="Comment"># Required software: xmllint, transmission-daemon and transmission-cli.</span>
<span class="Comment"># Enable the "Watch" and "Incomplete" directories in transmission-daemon's</span>
<span class="Comment"># settings.json, this can also be done using the web interface.</span>
<span class="Comment"># <a href="http://">http://</a><your-pi's-net-address-192.168.0.etc>:9091/transmission/web/#all</span>
<span class="Comment"># No login required no gui, just power up pi whenever or leave on all the time.</span>
<span class="Comment"># Downloads will occur at random times 01:00-05:00 ie. during off peak hours.</span>
<span class="Comment"># List show names in the "followed-shows.txt" file one entry per line.</span>
<span class="Comment"># Manually added links are copy/pasted to the "add-magnet.txt", one per line.</span>
<span class="Comment"># Make script executable and run it first in /home/<user> i.e. ./new-pvr.sh</span>
<span class="Comment">#</span>
<span class="Comment"># Add to "sudoers" with sudo visudo, this, "pi ALL=(ALL) NOPASSWD: ALL". ######</span>
<span class="Comment"># Backup your "/etc/fstab" then add these lines, leave out "#" on second line</span>
<span class="Comment"># Allow mount of network drive using the samba protocol, but without sudo.</span>
<span class="Comment">#//192.168.<etc>/Media /home/pi/Media cifs guest,uid=pi,noauto,user 0 0</span>
<span class="Comment"># Alter the NAS address (first one) to suit your network.</span>
<span class="Comment"># Create a "Downloads" directory in home before running the script.</span>
<span class="Statement">cd</span> <span class="Statement">"</span><span class="PreProc">$HOME</span><span class="Constant">/Downloads</span><span class="Statement">"</span> || <span class="Statement">exit</span> <span class="Comment"># Go to working directory.</span>
<span class="Comment"># If script fails kill processes allowing cron to do a reboot.</span>
<span class="Statement">trap</span> <span class="Statement">"</span><span class="Constant">killall -q transmission-daemon; exit</span><span class="Statement">"</span> SIGINT SIGTERM SIGHUP EXIT
<span class="Comment"># Setup variables.</span>
<span class="Identifier">smb</span>=<span class="Statement">"</span><span class="PreProc">$HOME</span><span class="Constant">/Media/Cloud TV</span><span class="Statement">"</span> <span class="Comment"># Samba mount point to NAS.</span>
<span class="Identifier">trk</span>=<span class="Statement">"</span><span class="PreProc">$HOME</span><span class="Constant">/.config/transmission-daemon</span><span class="Statement">"</span> <span class="Comment"># The daemon's config file.</span>
<span class="Identifier">add</span>=<span class="Statement">'</span><span class="Constant">scripts/add-magnet.txt</span><span class="Statement">'</span> <span class="Comment"># Any extra magnet links.</span>
<span class="Identifier">don</span>=<span class="Statement">'</span><span class="Constant">scripts/done-shows.txt</span><span class="Statement">'</span> <span class="Comment"># Done downloads list.</span>
<span class="Identifier">rss</span>=<span class="Statement">'</span><span class="Constant">scripts/rss.txt</span><span class="Statement">'</span> <span class="Comment"># Feed file rss listing.</span>
<span class="Identifier">rlg</span>=<span class="Statement">'</span><span class="Constant">log/run.log</span><span class="Statement">'</span> <span class="Comment"># This session, statistics.</span>
<span class="Identifier">dlg</span>=<span class="Statement">'</span><span class="Constant">log/debug.log</span><span class="Statement">'</span> <span class="Comment"># Debug log.</span>
<span class="Identifier">rec</span>=<span class="Statement">'</span><span class="Constant">log/rec.txt</span><span class="Statement">'</span> <span class="Comment"># Recently downloaded list.</span>
<span class="Identifier">mod</span>=<span class="Statement">'</span><span class="Constant">log/motd.txt</span><span class="Statement">'</span> <span class="Comment"># Message for ssh login.</span>
<span class="Identifier">ret</span>=<span class="Statement">'</span><span class="Constant">3</span><span class="Statement">'</span> <span class="Comment"># File retention in days.</span>
<span class="Identifier">cdn</span>=<span class="Statement">'</span><span class="Constant">0</span><span class="Statement">'</span> <span class="Comment"># Count/countdown variable.</span>
<span class="Statement">export</span><span class="Identifier"> trk</span> <span class="Comment"># Give access for subshell.</span>
<span class="Comment">###############################################################################</span>
<span class="Comment"># On first run, this part of the script creates the directory/file structure </span>
<span class="Comment"># in /pi/Downloads, it also installs the random time run-script crontab.</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">!</span> <span class="Statement">-e</span> scripts/<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">basename </span><span class="PreProc">$0</span><span class="PreProc">)</span><span class="Statement">"</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span>
<span class="Statement">set</span><span class="Identifier"> </span><span class="Special">-o</span><span class="Identifier"> noclobber</span>
<span class="Statement">mkdir</span> <span class="Statement">"</span><span class="Constant">/home/pi/Media</span><span class="Statement">"</span>
<span class="Statement">mkdir</span> <span class="Statement">-p</span> <span class="Special">{</span>Complete,Incomplete,scripts,log,ted<span class="Special">}</span>
<span class="Statement">&</span><span class="Statement">></span> /dev/null <span class="Statement">></span> scripts/followed-shows.txt
<span class="Statement">&</span><span class="Statement">></span> /dev/null <span class="Statement">></span> scripts/clipboard.txt
<span class="Statement">&</span><span class="Statement">></span> /dev/null <span class="Statement">></span> scripts/recent.txt
<span class="Statement">&</span><span class="Statement">></span> /dev/null <span class="Statement">></span> <span class="Statement">"</span><span class="PreProc">$add</span><span class="Statement">"</span>
<span class="Statement">&</span><span class="Statement">></span> /dev/null <span class="Statement">></span> <span class="Statement">"</span><span class="PreProc">$don</span><span class="Statement">"</span>
<span class="Statement">&</span><span class="Statement">></span> /dev/null <span class="Statement">></span> <span class="Statement">"</span><span class="PreProc">$rss</span><span class="Statement">"</span>
<span class="Identifier">t0</span>=<span class="Statement">'</span><span class="Constant"># Randomly between 01:00 and 05:00 new-pvr.sh run it.</span><span class="Statement">'</span>
<span class="Identifier">t1</span>=<span class="Statement">'</span><span class="Constant">00 00 * * * /bin/sleep $(((RANDOM\%10800)+3600)); </span><span class="Statement">'</span>
<span class="Identifier">t2</span>=<span class="Statement">"</span><span class="Constant">/home/pi/Downloads/scripts/</span><span class="PreProc">$(</span><span class="Special">basename </span><span class="PreProc">$0</span><span class="PreProc">)</span><span class="Constant">; sudo shutdown -r +1</span><span class="Statement">"</span>
<span class="PreProc">(</span>crontab <span class="Special">-u</span> <span class="Statement">"</span><span class="PreProc">$USER</span><span class="Statement">"</span> <span class="Special">-l</span><span class="Statement">;</span> <span class="Statement">echo</span><span class="Constant"> -e </span><span class="Statement">"</span><span class="Special">\n</span><span class="PreProc">$t0</span><span class="Special">\n</span><span class="PreProc">$t1$t2</span><span class="Special">\n</span><span class="Statement">"</span><span class="Constant"> </span><span class="PreProc">)</span> <span class="Statement">|</span> crontab <span class="Statement">-u</span> <span class="Statement">"</span><span class="PreProc">$USER</span><span class="Statement">"</span> -
cp <span class="Statement">"</span><span class="PreProc">$0</span><span class="Statement">"</span> scripts<span class="Statement">;</span> <span class="Statement">mv</span> <span class="Statement">"</span><span class="PreProc">$0</span><span class="Statement">"</span> <span class="Statement">"</span><span class="PreProc">$0</span><span class="Statement">"</span>.backup
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">'</span><span class="Constant">Now add some shows to the followed-shows.txt</span><span class="Statement">'</span>
<span class="Statement">exit</span>
<span class="Statement">else</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">'</span><span class="Constant">### Files exist, no action taken ###</span><span class="Statement">'</span>
<span class="Statement">fi</span>
<span class="Comment"># On subsequent runs it does nothing, you can delete it if you like.</span>
<span class="Comment"># NB. I noticed after my OS ugrade this section throws an error message, but it</span>
<span class="Comment"># still seems to do it's job, so check file structure is in place before use.</span>
<span class="Comment">###############################################################################</span>
<span class="Comment"># Set up log files. </span>
<span class="Statement">mv</span> <span class="Statement">"</span><span class="PreProc">$dlg</span><span class="Statement">"</span> <span class="Statement">"</span><span class="Constant">log/</span><span class="PreProc">$(</span><span class="Special">date </span><span class="Special">-d</span><span class="Special"> y +%a-%-d%b</span><span class="PreProc">)</span><span class="Constant">-debug.log</span><span class="Statement">"</span> <span class="Comment"># Rename old debug log.</span>
<span class="Statement">mv</span> <span class="Statement">"</span><span class="PreProc">$rlg</span><span class="Statement">"</span> <span class="Statement">"</span><span class="Constant">log/</span><span class="PreProc">$(</span><span class="Special">date </span><span class="Special">-d</span><span class="Special"> y +%a-%-d%b</span><span class="PreProc">)</span><span class="Constant">-run.log</span><span class="Statement">"</span> <span class="Comment"># Rename old session log.</span>
<span class="Statement">set</span><span class="Identifier"> </span><span class="Special">-x</span><span class="Identifier"> # Generate debug output.</span>
<span class="Statement">exec</span> <span class="Statement">></span> <span class="Statement">"</span><span class="PreProc">$dlg</span><span class="Statement">"</span> <span class="Constant">2</span><span class="Statement">>&1</span> <span class="Comment"># Route debug to debug.log.</span>
date <span class="Statement">></span> <span class="Statement">"</span><span class="PreProc">$rlg</span><span class="Statement">"</span> <span class="Comment"># Start a new session log.</span>
<span class="Statement">></span> <span class="Statement">"</span><span class="PreProc">$mod</span><span class="Statement">"</span> <span class="Comment"># Blank motd.txt.</span>
<span class="Comment"># Timer will wait for "Incomplete" to empty or for a file to appear dependant</span>
<span class="Comment"># on whether the $swh variable is set or not, or it'll just time out.</span>
<span class="Identifier">run_timer () {</span>
<span class="Statement">while </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$cdn</span><span class="Statement">"</span> <span class="Statement">-gt</span> <span class="Statement">"</span><span class="Constant">1</span><span class="Statement">"</span> <span class="Statement">]</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span>
<span class="Special">[[</span> <span class="Statement">!</span> <span class="Statement">"</span><span class="PreProc">$swh</span><span class="Statement">"</span> <span class="Constant">&&</span> <span class="Statement">"</span><span class="PreProc">$(</span><span class="Statement">ls</span><span class="Special"> Incomplete</span><span class="PreProc">)</span><span class="Statement">"</span> <span class="Special">]]</span> <span class="Statement">&&</span> <span class="Statement">break</span>
<span class="Special">[[</span> <span class="Statement">"</span><span class="PreProc">$swh</span><span class="Statement">"</span> <span class="Constant">&&</span> <span class="Statement">!</span> <span class="Statement">"</span><span class="PreProc">$(</span><span class="Statement">ls</span><span class="Special"> Incomplete</span><span class="PreProc">)</span><span class="Statement">"</span> <span class="Special">]]</span> <span class="Statement">&&</span> <span class="Statement">break</span>
<span class="Statement">(</span><span class="PreProc">(</span> cdn<span class="Statement">-=</span><span class="Constant">5</span> <span class="PreProc">)</span><span class="Statement">)</span><span class="Statement">;</span> <span class="Statement">sleep</span> <span class="Constant">5</span>
<span class="Statement">done</span> <span class="Constant">2</span><span class="Statement">></span> /dev/null
<span class="Identifier">}</span>
<span class="Comment"># Strip unwanted characters from filenames, magnet links and xml input.</span>
<span class="Comment"># 's/s[0-9]*e[0-9]*/\U&/;'\</span>
<span class="Identifier">strip_title () {</span>
<span class="Statement">sed</span> <span class="Special">-e</span> \
<span class="Statement">'</span><span class="Constant">s/\([S][0-9]*[E][0-9]*\).*\<.*/\1/;</span><span class="Statement">'</span>\
<span class="Statement">'</span><span class="Constant">s/.*>//;</span><span class="Statement">'</span>\
<span class="Statement">'</span><span class="Constant">s/[.+-]/ /g;</span><span class="Statement">'</span>\
<span class="Statement">'</span><span class="Constant">s/ \+/ /g;</span><span class="Statement">'</span>\
<span class="Statement">'</span><span class="Constant">s/.*dn=//;</span><span class="Statement">'</span>\
<span class="Statement">'</span><span class="Constant">s/New.*: //;</span><span class="Statement">'</span>\
<span class="Statement">'</span><span class="Constant">s/www Torrenting com //;</span><span class="Statement">'</span>\
<span class="Statement">'</span><span class="Constant">s/www scenetime com //</span><span class="Statement">'</span>
<span class="Identifier">}</span>
<span class="Comment"># Remove links with no proper episode number or with episode number 00.</span>
<span class="Identifier">no_specials ()</span>
<span class="Identifier">{</span>
strip_title <span class="Statement"><<<</span> <span class="Statement">"</span><span class="PreProc">$lnk</span><span class="Statement">"</span> <span class="Statement">|</span> <span class="Statement">grep</span> <span class="Statement">'</span><span class="Constant">E[0-9][0-9]</span><span class="Statement">'</span> <span class="Statement">|</span> <span class="Statement">grep</span> <span class="Special">-v</span> <span class="Statement">'</span><span class="Constant">E00</span><span class="Statement">'</span>
<span class="Identifier">}</span>
<span class="Comment"># Housekeeping, clean up old downloads and logs.</span>
<span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">df </span><span class="Special">--output=pcent</span><span class="Special"> / </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">sed</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">1d</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> cut </span><span class="Special">-d</span><span class="Statement">'</span><span class="Constant">%</span><span class="Statement">'</span><span class="Special"> </span><span class="Special">-f</span><span class="Constant">1</span><span class="PreProc">)</span><span class="Statement">"</span> <span class="Statement">-gt</span> <span class="Constant">70</span> <span class="Statement">]</span> && <span class="Identifier">ret</span>=<span class="Statement">"</span><span class="Constant">1</span><span class="Statement">"</span>
<span class="Statement">find</span> log <span class="Special">-mtime</span> +<span class="Constant">14</span> <span class="Special">-type</span> f <span class="Special">-delete</span>
<span class="Statement">find</span> Complete <span class="Special">-mindepth</span> <span class="Constant">1</span> <span class="Special">-mtime</span> +<span class="Statement">"</span><span class="PreProc">$ret</span><span class="Statement">"</span> <span class="Special">-delete</span>
<span class="Statement">find</span> <span class="Statement">"</span><span class="PreProc">$trk</span><span class="Statement">"</span> <span class="Special">-mtime</span> +<span class="Statement">"</span><span class="PreProc">$ret</span><span class="Statement">"</span> <span class="Special">-name</span> *.torrent <span class="Special">-type</span> f <span class="Special">-delete</span> <span class="Special">-execdir</span> bash <span class="Special">-c</span><span class="Statement">\</span>
<span class="Statement">'</span><span class="Constant">del="{}"; del="${del##*/}"; rm -f "$trk/resume/${del%.*}.resume"</span><span class="Statement">'</span> \;
<span class="Comment"># Fire up dat daemon.</span>
transmission-daemon <span class="Special">-g</span> <span class="Statement">"</span><span class="PreProc">$trk</span><span class="Statement">"</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">date +%T</span><span class="PreProc">)</span><span class="Constant"> - Transmission-daemon started.</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$rlg</span><span class="Statement">"</span>
<span class="Statement">sleep</span> <span class="Constant">60</span>
<span class="Comment"># Download rss feeds, pretty print to seperate lines allowing parsing.</span>
wget <span class="Special">-q</span> <span class="Special">-O</span> - <span class="Statement">'</span><span class="Constant"><a href="https://showrss.info/other/all.rss">https://showrss.info/other/all.rss</a></span><span class="Statement">'</span> | <span class="Statement">\</span>
xmllint <span class="Special">--format</span> - <span class="Statement">></span> <span class="Statement">"</span><span class="PreProc">$rss</span><span class="Statement">"</span> <span class="Constant">2</span><span class="Statement">></span> /dev/null
cat scripts/clipboard.txt <span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$rss</span><span class="Statement">"</span> <span class="Comment"># Append earlier download.</span>
<span class="Comment"># Check followed-shows list against new rss.txt file, standard def. not HD. If</span>
<span class="Comment"># you want HD versions you'll have to modify the "sed" statments, alternatively</span>
<span class="Comment"># you could use the "add-magnet.txt" file for a one off.</span>
<span class="Comment">## NB. GNU sed is being used in this script, BSD/POSIX versions won't do. ####</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">-s</span> <span class="Statement">"</span><span class="PreProc">$rss</span><span class="Statement">"</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span>
<span class="Statement">while </span><span class="Statement">read</span><span class="Statement"> </span><span class="Statement">-r</span><span class="Statement"> shw</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span>
<span class="Statement">if </span><span class="Special">[[</span> <span class="Statement">"</span><span class="PreProc">${</span><span class="PreProc">shw</span><span class="Statement">:</span><span class="Constant">0</span><span class="Statement">:</span><span class="Constant">1</span><span class="PreProc">}</span><span class="Statement">"</span> <span class="Statement">!=</span> <span class="Statement">"</span><span class="Constant">#</span><span class="Statement">"</span> <span class="Constant">&&</span> <span class="Statement">"</span><span class="PreProc">$shw</span><span class="Statement">"</span> <span class="Statement">!=</span> <span class="Statement">""</span> <span class="Special">]]</span><span class="Statement">;</span> <span class="Statement">then</span>
<span class="Identifier">epi</span>=<span class="PreProc">$(</span><span class="Statement">sed</span><span class="Special"> </span><span class="Special">-n</span><span class="Special"> </span><span class="Statement">"</span><span class="Constant">/720p</span><span class="Special">\|</span><span class="Constant">1080p/d;/descrip.*</span><span class="Special">\b</span><span class="PreProc">$shw</span><span class="Constant">/Ip</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$rss</span><span class="Statement">"</span><span class="PreProc">)</span>
<span class="Statement">[</span> <span class="Statement">-z</span> <span class="Statement">"</span><span class="PreProc">$epi</span><span class="Statement">"</span> <span class="Statement">]</span> <span class="Statement">&&</span> <span class="Statement">continue</span>
<span class="Statement">while </span><span class="Statement">read</span><span class="Statement"> </span><span class="Statement">-r</span><span class="Statement"> lnk</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span>
<span class="Statement">if </span><span class="Statement">!</span> <span class="Statement">grep</span> <span class="Special">-iq</span> <span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">strip_title </span><span class="Statement"><<</span><span class="Special">< </span><span class="Statement">"</span><span class="PreProc">$lnk</span><span class="Statement">"</span><span class="PreProc">)</span><span class="Statement">"</span> <span class="Statement">"</span><span class="PreProc">$don</span><span class="Statement">"</span><span class="Statement">;</span> <span class="Statement">then</span>
<span class="Identifier">lnk</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Statement">sed</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">s/.*href=\"//;s/\".*//</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement"><<</span><span class="Special">< </span><span class="Statement">"</span><span class="PreProc">$lnk</span><span class="Statement">"</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Statement">if </span>no_specials<span class="Statement">;</span> <span class="Statement">then</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$lnk</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$add</span><span class="Statement">"</span>
strip_title <span class="Statement"><<<</span> <span class="Statement">"</span><span class="PreProc">$lnk</span><span class="Statement">"</span> <span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$don</span><span class="Statement">"</span>
<span class="Statement">fi</span>
<span class="Statement">fi</span>
<span class="Statement">done</span> <span class="Statement"><<<</span> <span class="Statement">"</span><span class="PreProc">$epi</span><span class="Statement">"</span> <span class="Comment"># Add to add-magnet.txt</span>
<span class="Statement">fi</span>
<span class="Statement">done</span> <span class="Statement"><</span> <span class="Statement">'</span><span class="Constant">scripts/followed-shows.txt</span><span class="Statement">'</span>
<span class="Statement">sed</span> <span class="Statement">'</span><span class="Constant">s/.*E\([0-9][0-9]*\)/\1 &/</span><span class="Statement">'</span> <span class="Statement">"</span><span class="PreProc">$add</span><span class="Statement">"</span> <span class="Statement">|</span> <span class="Statement">sort</span> <span class="Statement">-u</span> <span class="Statement">-o</span> <span class="Statement">"</span><span class="PreProc">$add</span><span class="Statement">"</span>
<span class="Statement">sed</span> <span class="Statement">-i</span> <span class="Statement">'</span><span class="Constant">s/.* //</span><span class="Statement">'</span> <span class="Statement">"</span><span class="PreProc">$add</span><span class="Statement">"</span>
<span class="Comment">#sort -t "=" -k3 -u -o "$add" "$add"</span>
<span class="Statement">grep</span> <span class="Statement">"</span><span class="Constant">raw.*title</span><span class="Statement">"</span> <span class="Statement">"</span><span class="PreProc">$rss</span><span class="Statement">"</span> <span class="Statement">|</span> <span class="Statement">sed</span> <span class="Statement">"</span><span class="Constant">/720</span><span class="Special">\|</span><span class="Constant">1080/d</span><span class="Statement">"</span> <span class="Statement">|</span> strip_title <span class="Statement">|</span> <span class="Statement">sort</span> <span class="Statement">-u</span> \
<span class="Statement">></span> log/rss-today.txt
<span class="Statement">else</span>
<span class="Statement">echo</span><span class="Constant"> 1 </span><span class="Statement">></span> log/flashred.txt
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">'</span><span class="Constant"> ## ERROR - rss feed failed to download. ##</span><span class="Statement">'</span><span class="Constant"> </span><span class="Statement">|</span> tee <span class="Statement">-a</span> <span class="Statement">"</span><span class="PreProc">$rlg</span><span class="Statement">"</span> <span class="Statement">"</span><span class="PreProc">$mod</span><span class="Statement">"</span>
<span class="Statement">></span> log/rss-today.txt
<span class="Statement">fi</span>
<span class="Comment"># Load the bit torrent client with links from the "add-magnet.txt" file.</span>
<span class="Statement">while </span><span class="Statement">read</span><span class="Statement"> </span><span class="Statement">-r</span><span class="Statement"> lnk</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span>
<span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$cdn</span><span class="Statement">"</span> <span class="Statement">-ge</span> <span class="Statement">"</span><span class="Constant">3</span><span class="Statement">"</span> <span class="Statement">]</span> <span class="Statement">&&</span> <span class="Statement">break</span>
<span class="Statement">(</span><span class="PreProc">(</span> <span class="Identifier">cdn+</span>=<span class="Constant">1</span> <span class="PreProc">)</span><span class="Statement">)</span>
transmission-remote <span class="Special">--add</span> <span class="Statement">"</span><span class="PreProc">$lnk</span><span class="Statement">"</span>
strip_title <span class="Statement"><<<</span> <span class="Statement">"</span><span class="PreProc">$lnk</span><span class="Statement">"</span> <span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$don</span><span class="Statement">"</span>
<span class="Statement">sed</span> <span class="Statement">-i</span> <span class="Statement">'</span><span class="Constant">1,1d</span><span class="Statement">'</span> <span class="Statement">"</span><span class="PreProc">$add</span><span class="Statement">"</span>
<span class="Statement">done</span> <span class="Statement"><</span> <span class="Statement">"</span><span class="PreProc">$add</span><span class="Statement">"</span>
<span class="Statement">sort</span> <span class="Special">-u</span> <span class="Statement">"</span><span class="PreProc">$don</span><span class="Statement">"</span> <span class="Special">-o</span> <span class="Statement">"</span><span class="PreProc">$don</span><span class="Statement">"</span> <span class="Comment"># Tidy up done-shows list.</span>
<span class="Comment"># Wait for first link to load, skip if incomplete files exist.</span>
<span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$cdn</span><span class="Statement">"</span> <span class="Statement">-ne</span> <span class="Statement">"</span><span class="Constant">0</span><span class="Statement">"</span> <span class="Statement">]</span> && <span class="Statement">\</span>
<span class="PreProc">(</span><span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">date +%T</span><span class="PreProc">)</span><span class="Constant"> - Wait for links or resume incompletes.</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">>></span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$rlg</span><span class="Statement">"</span><span class="Statement">;</span>
<span class="Identifier">cdn</span>=<span class="Statement">"</span><span class="Constant">420</span><span class="Statement">"</span><span class="Statement">;</span><span class="Special"> </span><span class="Identifier">swh</span>=<span class="Statement">""</span><span class="Statement">;</span><span class="Special"> run_timer</span><span class="PreProc">)</span> <span class="Comment"># Set to wait for link load.</span>
<span class="Comment"># If torrents are present start session timer.</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$(</span><span class="Statement">ls</span><span class="Special"> Incomplete</span><span class="PreProc">)</span><span class="Statement">"</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span>
transmission-remote <span class="Special">--torrent</span> all <span class="Special">--start</span>
<span class="Identifier">cdn</span>=<span class="Statement">"</span><span class="Constant">3600</span><span class="Statement">"</span><span class="Statement">;</span> <span class="Identifier">swh</span>=<span class="Statement">"</span><span class="Constant">1</span><span class="Statement">"</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">date +%T</span><span class="PreProc">)</span><span class="Constant"> - Proceeding with download </span><span class="PreProc">$((</span>cdn/<span class="Constant">60</span><span class="PreProc">))</span><span class="Constant">m max.</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$rlg</span><span class="Statement">"</span>
run_timer
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">date +%T</span><span class="PreProc">)</span><span class="Constant"> - Seed for another 10 minutes.</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$rlg</span><span class="Statement">"</span>
<span class="Statement">sleep</span> <span class="Constant">600</span>
transmission-remote <span class="Special">--torrent</span> all <span class="Special">--stop</span>
transmission-remote <span class="Special">--session-stats</span> <span class="Statement">|</span> <span class="Statement">sed</span> <span class="Statement">'</span><span class="Constant">3,6!d</span><span class="Statement">'</span> <span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$rlg</span><span class="Statement">"</span>
<span class="Statement">(</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">date +%T</span><span class="PreProc">)</span><span class="Constant"> - End of </span><span class="PreProc">$(</span><span class="Special">date +%A</span><span class="PreProc">)</span><span class="Constant">'s downloads.</span><span class="Statement">"</span>
<span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$(</span><span class="Statement">ls</span><span class="Special"> Incomplete</span><span class="PreProc">)</span><span class="Statement">"</span> <span class="Statement">]</span> <span class="Statement">&&</span> <span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">'</span><span class="Constant">Incomplete download(s):</span><span class="Statement">'</span><span class="Constant"> </span><span class="Statement">&&</span> <span class="Statement">ls</span> Incomplete
<span class="Statement">)</span> <span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$rlg</span><span class="Statement">"</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant"> PVR session...: </span><span class="PreProc">$(</span><span class="Special">awk </span><span class="Statement">'</span><span class="Constant">/Downloaded/{print $1,$2$3}</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$rlg</span><span class="Statement">"</span><span class="PreProc">)</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">>></span><span class="Statement">"</span><span class="PreProc">$mod</span><span class="Statement">"</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">'</span><span class="Constant">Rename & transfer to network storage.</span><span class="Statement">'</span><span class="Constant"> </span><span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$rlg</span><span class="Statement">"</span>
<span class="Statement">fi</span>
transmission-remote <span class="Special">--exit</span>
<span class="Comment"># Just the main video files are selected ignoring previews and promos.</span>
<span class="Comment"># Create directories if needed on NAS and copy files there, renaming on the way.</span>
<span class="Identifier">cdn</span>=<span class="Constant">0</span>; <span class="Identifier">new</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Statement">find</span><span class="Special"> Complete </span><span class="Special">-size</span><span class="Special"> +50M </span><span class="Special">-daystart</span><span class="Special"> </span><span class="Special">-mtime</span><span class="Special"> </span><span class="Constant">-1</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$new</span><span class="Statement">"</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span> <span class="Comment"># Do we have episodes.</span>
mount <span class="Statement">'</span><span class="Constant">/home/pi/Media</span><span class="Statement">'</span>
<span class="Statement">sleep</span> <span class="Constant">45</span>
<span class="Statement">while </span><span class="Statement">read</span><span class="Statement"> </span><span class="Statement">-r</span><span class="Statement"> vid</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span>
<span class="Identifier">ext</span>=<span class="Statement">"</span><span class="PreProc">${</span><span class="PreProc">vid</span><span class="Statement">##</span>*.<span class="PreProc">}</span><span class="Statement">"</span>
<span class="Identifier">epi</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">strip_title </span><span class="Statement"><<</span><span class="Special">< $</span><span class="PreProc">(</span>dirname <span class="Statement">"</span><span class="PreProc">$vid</span><span class="Statement">"</span> <span class="Statement">|</span> xargs basename <span class="Special">-a</span><span class="PreProc">))</span><span class="Statement">"</span>
<span class="Identifier">dir</span>=<span class="Statement">"</span><span class="PreProc">${</span><span class="PreProc">epi</span><span class="Statement">%</span> [Ss][0-9]*<span class="PreProc">}</span><span class="Constant">/Season </span><span class="PreProc">$(</span><span class="Statement">tail</span><span class="Special"> </span><span class="Special">-c</span><span class="Special"> </span><span class="Constant">6</span><span class="Special"> </span><span class="Statement"><<</span><span class="Special">< </span><span class="PreProc">$epi</span><span class="Special"> </span><span class="Statement">|</span><span class="Special">\</span>
<span class="Special"> head </span><span class="Special">-c</span><span class="Special"> </span><span class="Constant">2</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">sed</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">s/^0//</span><span class="Statement">'</span><span class="PreProc">)</span><span class="Statement">"</span> <span class="Comment"># Determine directory tree.</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$epi</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">|</span> <span class="Statement">sed</span> <span class="Statement">'</span><span class="Constant">s/^/ /</span><span class="Statement">'</span> <span class="Statement">|</span> tee <span class="Statement">-a</span> <span class="Statement">"</span><span class="PreProc">$rlg</span><span class="Statement">"</span> <span class="Statement">"</span><span class="PreProc">$mod</span><span class="Statement">"</span> <span class="Statement">|</span>\
<span class="Statement">sed</span> <span class="Statement">"</span><span class="Constant">s/^/</span><span class="PreProc">$(</span><span class="Special">date +%a-%d</span><span class="PreProc">)</span><span class="Constant">/;s/$/ </span><span class="Special">\:</span><span class="PreProc">$(</span><span class="Statement">du</span><span class="Special"> </span><span class="Special">--si</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$vid</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> cut </span><span class="Special">-f</span><span class="Constant">1</span><span class="PreProc">)</span><span class="Constant">/</span><span class="Statement">"</span> <span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$rec</span><span class="Statement">"</span>
<span class="Statement">mkdir</span> <span class="Statement">-p</span> <span class="Statement">"</span><span class="PreProc">$smb</span><span class="Constant">/</span><span class="PreProc">$dir</span><span class="Statement">"</span> <span class="Comment"># Create directory on NAS.</span>
cp <span class="Statement">"</span><span class="PreProc">$vid</span><span class="Statement">"</span> <span class="Statement">"</span><span class="PreProc">$smb</span><span class="Constant">/</span><span class="PreProc">$dir</span><span class="Constant">/</span><span class="PreProc">$epi</span><span class="Constant">.</span><span class="PreProc">$ext</span><span class="Statement">"</span> <span class="Comment"># Copy to NAS renamed.</span>
<span class="Statement">(</span><span class="PreProc">(</span> <span class="Identifier">cdn+</span>=<span class="Constant">1</span> <span class="PreProc">)</span><span class="Statement">)</span> <span class="Comment"># Increment LED indicator.</span>
<span class="Statement">done</span> <span class="Statement"><<<</span> <span class="Statement">"</span><span class="PreProc">$new</span><span class="Statement">"</span>
<span class="Statement">fi</span>
<span class="Comment"># This works in conjunction with the "ted-talks.sh" script if it exists.</span>
<span class="Comment"># The mount commands will need tailoring to your network setup. ###############</span>
<span class="Identifier">new</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Statement">find</span><span class="Special"> ted </span><span class="Special">-type</span><span class="Special"> f</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$new</span><span class="Statement">"</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant"> TED session...: Downloaded </span><span class="Statement">"</span><span class="PreProc">$(</span><span class="Statement">du</span><span class="Special"> </span><span class="Special">--si</span><span class="Special"> ted </span><span class="Statement">|</span><span class="Special"> cut </span><span class="Special">-f</span><span class="Constant">2</span><span class="PreProc">)</span><span class="Statement">"</span><span class="Constant">B</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">|</span>\
tee <span class="Statement">-a</span> <span class="Statement">"</span><span class="PreProc">$rlg</span><span class="Statement">"</span> <span class="Statement">"</span><span class="PreProc">$mod</span><span class="Statement">"</span>
<span class="Statement">while </span><span class="Statement">read</span><span class="Statement"> </span><span class="Statement">-r</span><span class="Statement"> vid</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span>
<span class="Statement">[</span> <span class="Statement">-e</span> <span class="Statement">"</span><span class="PreProc">$vid</span><span class="Statement">"</span> <span class="Statement">]</span> <span class="Statement">&&</span> <span class="Statement">mv</span> <span class="Statement">"</span><span class="PreProc">$vid</span><span class="Statement">"</span>\
ted/<span class="Statement">"</span><span class="PreProc">$(</span><span class="Statement">grep</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">${</span><span class="PreProc">vid</span><span class="Statement">##</span>*/<span class="PreProc">}</span><span class="Statement">"</span><span class="Special"> scripts/ted-donelist.txt </span><span class="Statement">|</span><span class="Special"> cut </span><span class="Special">-d</span><span class="Statement">"</span><span class="Constant">|</span><span class="Statement">"</span><span class="Special"> </span><span class="Special">-f</span><span class="Special">1</span><span class="Constant">-2</span><span class="Special"> </span><span class="Statement">|</span><span class="Special">\</span>
<span class="Special"> tr </span><span class="Special">-cd</span><span class="Special"> </span><span class="Statement">[</span>:alnum:<span class="Statement">][</span>:blank:<span class="Statement">]</span><span class="PreProc">)</span><span class="Constant">.mp4</span><span class="Statement">"</span> <span class="Comment"># Make a sane filename.</span>
<span class="Statement">(</span><span class="PreProc">(</span> <span class="Identifier">cdn+</span>=<span class="Constant">1</span> <span class="PreProc">)</span><span class="Statement">)</span>
<span class="Statement">done</span> <span class="Statement"><<<</span> <span class="Statement">"</span><span class="PreProc">$new</span><span class="Statement">"</span>
<span class="Statement">ls</span> ted <span class="Statement">|</span> <span class="Statement">sed</span> <span class="Statement">'</span><span class="Constant">s/^/ /;s/.mp4//</span><span class="Statement">'</span> <span class="Statement">|</span> cut <span class="Special">-c</span>1<span class="Constant">-77</span> <span class="Statement">|</span> tee <span class="Statement">-a</span> <span class="Statement">"</span><span class="PreProc">$rlg</span><span class="Statement">"</span> <span class="Statement">"</span><span class="PreProc">$mod</span><span class="Statement">"</span>
<span class="Statement">if </span><span class="Statement">!</span> mount <span class="Statement">-l</span> <span class="Statement">|</span> <span class="Statement">grep</span> <span class="PreProc">$(</span><span class="Special">dirname </span><span class="Statement">"</span><span class="PreProc">$smb</span><span class="Statement">"</span><span class="PreProc">)</span><span class="Statement">;</span> <span class="Statement">then</span>
mount <span class="Statement">'</span><span class="Constant">/home/pi/Media</span><span class="Statement">'</span>
<span class="Statement">sleep</span> <span class="Constant">45</span>
<span class="Statement">fi</span>
<span class="Statement">mv</span> ted/* <span class="Statement">"</span><span class="PreProc">$smb</span><span class="Statement">"</span>/TED-talks
<span class="Statement">fi</span>
<span class="Comment"># Finish up.</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$cdn</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">></span> <span class="Statement">'</span><span class="Constant">log/flashblue.txt</span><span class="Statement">'</span> <span class="Comment"># Flash LED $cdn times.</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$(</span><span class="Statement">tail</span><span class="Special"> </span><span class="Constant">-25</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$rec</span><span class="Statement">"</span><span class="PreProc">)</span><span class="Statement">"</span><span class="Constant"> </span>| tac <span class="Statement">></span> <span class="Statement">'</span><span class="Constant">scripts/recent.txt</span><span class="Statement">'</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$cdn</span><span class="Statement">"</span> <span class="Statement">-lt</span> <span class="Statement">"</span><span class="Constant">1</span><span class="Statement">"</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant"> This session..: </span><span class="PreProc">$(</span><span class="Special">date +%A</span><span class="PreProc">)</span><span class="Constant"> nothing new.</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">|</span> tee <span class="Statement">-a</span> <span class="Statement">"</span><span class="PreProc">$rlg</span><span class="Statement">"</span> <span class="Statement">"</span><span class="PreProc">$mod</span><span class="Statement">"</span>
<span class="Statement">else</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">date +%T</span><span class="PreProc">)</span><span class="Constant"> - File(s) transfer completed.</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$rlg</span><span class="Statement">"</span>
<span class="Statement">(</span>
<span class="Statement">echo</span><span class="Constant"> -n </span><span class="Statement">"</span><span class="Constant"> Script runtime: </span><span class="PreProc">$(</span><span class="Special">date </span><span class="Special">-d@</span><span class="Statement">"</span><span class="PreProc">$SECONDS</span><span class="Statement">"</span><span class="Special"> </span><span class="Special">-u</span><span class="Special"> +%H:%M:%S</span><span class="PreProc">)</span><span class="Constant"> - </span><span class="Statement">"</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant">Load average: </span><span class="PreProc">$(</span><span class="Special">awk </span><span class="Statement">'</span><span class="Constant">{print $1,$2,$3}</span><span class="Statement">'</span><span class="Special"> /proc/loadavg</span><span class="PreProc">)</span><span class="Statement">"</span>
<span class="Statement">)</span> <span class="Statement">|</span> tee <span class="Statement">-a</span> <span class="Statement">"</span><span class="PreProc">$rlg</span><span class="Statement">"</span> <span class="Statement">"</span><span class="PreProc">$mod</span><span class="Statement">"</span>
umount <span class="Statement">'</span><span class="Constant">/home/pi/Media</span><span class="Statement">'</span>
<span class="Statement">fi</span>
<span class="Comment"># exit - see trap.</span>
</pre></body><br />
</html>Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-39507884326938515602016-09-08T08:48:00.002-07:002016-09-08T09:25:13.202-07:00LED flash<style type="text/css">
<!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
* { font-size: 1em; }
.PreProc { color: #800080; }
.Statement { color: #a52a2a; font-weight: bold; }
.Comment { color: #0000ff; }
.Constant { color: #ff00ff; }
.Special { color: #6a5acd; }
.Identifier { color: #008b8b; }
-->
</style><br />
</head><body><pre><span class="Comment">#!/bin/bash</span>
<span class="Comment"># Filename: countLED.sh</span>
<span class="Comment"># Version: 270716</span>
<span class="Comment"># Author: robz</span>
<span class="Comment"># Raspberry Pi script, flashes an LED number in "flash.txt" times. </span>
<span class="Comment"># GPIO pin 18 flash for new-pvr.sh, flashes number of shows downloaded.</span>
<span class="Comment"># Requires an LED on pin 18 with a 470ohm resistor to a ground pin.</span>
<span class="Comment"># An alternative is to use the green activity LED, comment code appropriately.</span>
<span class="Comment"># Sudo crontab entries for this to work with new-pvr.sh:</span>
<span class="Comment"># @reboot /home/pi/Downloads/scripts/countLED.sh > /dev/null 2>&1</span>
<span class="Comment"># 00 18 * * * /usr/bin/pkill countLED.sh > /dev/null 2>&1</span>
<span class="Identifier">cdn</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">cat /home/pi/Downloads/scripts/flash.txt</span><span class="PreProc">)</span><span class="Statement">"</span> <span class="Comment"># Current number of shows.</span>
<span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$cdn</span><span class="Statement">"</span> <span class="Statement">-lt</span> <span class="Statement">"</span><span class="Constant">1</span><span class="Statement">"</span> <span class="Statement">]</span> && <span class="Statement">exit</span>
<span class="Identifier">cleanup ()</span>
<span class="Identifier">{</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant">18</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">></span> /sys/class/gpio/unexport
<span class="Comment"># echo "mmc0" > /sys/class/leds/led0/trigger</span>
<span class="Identifier">}</span>
<span class="Statement">trap</span> <span class="Statement">'</span><span class="Constant">cleanup > /dev/null 2>&1; exit</span><span class="Statement">'</span> SIGTERM SIGHUP ERR EXIT
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant">18</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">></span> /sys/class/gpio/<span class="Statement">export</span> <span class="Comment"># Activate GPIO pin 18.</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant">out</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">></span> /sys/class/gpio/gpio18/direction <span class="Comment"># Designate as an output.</span>
<span class="Statement">while </span><span class="Statement">true</span><span class="Statement">; </span><span class="Statement">do</span> <span class="Comment"># Continuous loop.</span>
for <span class="PreProc">((</span><span class="Identifier">n</span>=<span class="Constant">1</span>; n<=cdn; n++<span class="PreProc">))</span>; <span class="Statement">do</span> <span class="Comment"># Count shows loop.</span>
<span class="Statement">echo</span><span class="Constant"> 1 </span><span class="Statement">></span> /sys/class/gpio/gpio18/value <span class="Comment"># GPIO 18 high, LED on.</span>
<span class="Comment"># echo 1 > /sys/class/leds/led0/brightness # Activity LED on.</span>
<span class="Statement">sleep</span> .1
<span class="Statement">echo</span><span class="Constant"> 0 </span><span class="Statement">></span> /sys/class/gpio/gpio18/value <span class="Comment"># GPIO 18 low, LED off.</span>
<span class="Comment"># echo 0 > /sys/class/leds/led0/brightness # Activity LED off.</span>
<span class="Statement">sleep</span> .2
<span class="Statement">done</span>
<span class="Statement">sleep</span> <span class="Constant">4</span>
<span class="Statement">done</span>
</pre></body><br />
</html><br />
Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-29721010376395998042016-09-08T08:41:00.000-07:002016-09-08T09:25:13.198-07:00TED Talks<style type="text/css">
<!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
* { font-size: 1em; }
.PreProc { color: #800080; }
.Statement { color: #a52a2a; font-weight: bold; }
.Comment { color: #0000ff; }
.Constant { color: #ff00ff; }
.Special { color: #6a5acd; }
.Identifier { color: #008b8b; }
-->
</style><br />
</head><body><pre><span class="Comment">#!/bin/bash</span>
<span class="Comment"># Filename: ted-talks.sh</span>
<span class="Comment"># Version: 040716</span>
<span class="Comment"># Author: robz</span>
<span class="Comment"># A raspi script for downloading TED talks video using off peak bandwidth.</span>
<span class="Comment"># Used as part of the interactive motd.sh script or just run in a terminal.</span>
<span class="Comment"># You may need to "apt-get install at" this will also install heirloom-mailx</span>
<span class="Comment"># packages but these can be removed afterwards if you wish without affecting</span>
<span class="Comment"># the operation of the "at" utility.</span>
<span class="Comment">#</span>
<span class="Identifier">dwn</span>=<span class="Statement">"</span><span class="PreProc">$HOME</span><span class="Constant">/Downloads</span><span class="Statement">"</span>
<span class="Identifier">ted</span>=<span class="Statement">"</span><span class="PreProc">$dwn</span><span class="Constant">/ted</span><span class="Statement">"</span> <span class="Comment"># Downloaded media here.</span>
<span class="Identifier">rss</span>=<span class="Statement">"</span><span class="PreProc">$dwn</span><span class="Constant">/scripts/ted-rss.txt</span><span class="Statement">"</span> <span class="Comment"># Feed location.</span>
<span class="Identifier">don</span>=<span class="Statement">"</span><span class="PreProc">$dwn</span><span class="Constant">/scripts/ted-donelist.txt</span><span class="Statement">"</span> <span class="Comment"># Shows already downloaded.</span>
<span class="Identifier">num</span>=<span class="Statement">"</span><span class="Constant">29</span><span class="Statement">"</span> <span class="Comment"># Number of choices in list.</span>
<span class="Comment"># Get rss feed, refresh weekly.</span>
<span class="Statement">if </span><span class="Special">[[</span> <span class="Statement">!</span> <span class="Statement">-e</span> <span class="Statement">"</span><span class="PreProc">$rss</span><span class="Statement">"</span> <span class="Statement">||</span> <span class="PreProc">$(</span><span class="Statement">find</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$rss</span><span class="Statement">"</span><span class="Special"> </span><span class="Special">-mtime</span><span class="Special"> </span><span class="Special">+7</span><span class="PreProc">)</span> <span class="Special">]]</span>; <span class="Statement">then</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant">please wait - downloading new feed.</span><span class="Statement">"</span>
wget <span class="Statement">-q</span> <span class="Statement">-O</span> - <span class="Statement">"</span><span class="Constant"><a href="https://www.ted.com/talks/rss">https://www.ted.com/talks/rss</a></span><span class="Statement">"</span> <span class="Statement">></span> <span class="Statement">"</span><span class="PreProc">$rss</span><span class="Statement">"</span>
<span class="Statement">fi</span>
<span class="Comment"># Display choices list. (suits an 80 column terminal) </span>
<span class="Identifier">lst</span>=<span class="PreProc">$(</span><span class="Statement">grep</span><span class="Special"> </span><span class="Statement">"</span><span class="Constant"><title</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$rss</span><span class="Statement">"</span><span class="Special"> | </span><span class="Statement">sed</span><span class="Special"> </span><span class="Special">-e</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">s/<[^>]*>//g;1,2d;s/^[ \t]*//</span><span class="Statement">'</span><span class="Special"> | \</span>
<span class="Statement">grep</span><span class="Special"> </span><span class="Special">-v</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$(</span><span class="Statement">sed</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">s/|.*//</span><span class="Statement">'</span><span class="Special"> < </span><span class="Statement">"</span><span class="PreProc">$don</span><span class="Statement">"</span><span class="PreProc">)</span><span class="Statement">"</span><span class="PreProc">)</span> <span class="Comment"># Make list, exclude done.</span>
<span class="Identifier">top</span>=<span class="PreProc">$(</span><span class="Statement">sed</span><span class="Special"> q <<< </span><span class="Statement">"</span><span class="PreProc">$lst</span><span class="Statement">"</span><span class="PreProc">)</span> <span class="Comment"># Extract newest not viewed.</span>
<span class="Identifier">lst</span>=<span class="PreProc">$(</span><span class="Statement">grep</span><span class="Special"> </span><span class="Special">-v</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$top</span><span class="Statement">"</span><span class="Special"> <<< </span><span class="Statement">"</span><span class="PreProc">$lst</span><span class="Statement">"</span><span class="PreProc">)</span> <span class="Comment"># Remove duplicate entry.</span>
<span class="Identifier">lst</span>=<span class="PreProc">$(</span><span class="Special">shuf </span><span class="Special">-n</span><span class="Statement">"</span><span class="PreProc">$num</span><span class="Statement">"</span><span class="Special"> <<< </span><span class="Statement">"</span><span class="PreProc">$lst</span><span class="Statement">"</span><span class="PreProc">)</span> <span class="Comment"># Shuffle the rest of list.</span>
<span class="Identifier">lst</span>=<span class="PreProc">$(</span><span class="Statement">echo</span><span class="Constant"> -e </span><span class="Statement">"</span><span class="PreProc">$top</span><span class="Special">\n</span><span class="PreProc">$lst</span><span class="Statement">"</span><span class="PreProc">)</span> <span class="Comment"># Put newest talk at top.</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant"> Popular TED talks.</span><span class="Statement">"</span>
<span class="Statement">echo</span><span class="Constant"> -e </span><span class="Statement">"</span><span class="Special">\n</span><span class="PreProc">$lst</span><span class="Special">\n</span><span class="Statement">"</span><span class="Constant"> </span>| nl <span class="Special">-w3</span> <span class="Special">-s</span> <span class="Statement">'</span><span class="Constant">) </span><span class="Statement">'</span> | cut <span class="Special">-c</span> <span class="Constant">-79</span> <span class="Comment"># Number and trim to width.</span>
<span class="Statement">echo</span>
<span class="Comment"># Choose your TED talk.</span>
<span class="Statement">read</span> <span class="Special">-p</span> <span class="Statement">"</span><span class="Constant"> Type in number - Enter, or just enter to cancel: </span><span class="Statement">"</span> ans
<span class="Comment"># Reject nonsense inputs.</span>
<span class="Statement">if </span><span class="Special">[[</span> <span class="Statement">"</span><span class="PreProc">$ans</span><span class="Statement">"</span> <span class="Statement">-gt</span> <span class="Statement">"</span><span class="PreProc">$((</span> num+<span class="Constant">1</span> <span class="PreProc">))</span><span class="Statement">"</span> <span class="Statement">||</span> <span class="Statement">"</span><span class="PreProc">$ans</span><span class="Statement">"</span> <span class="Statement">-lt</span> <span class="Statement">"</span><span class="Constant">1</span><span class="Statement">"</span> <span class="Special">]]</span>; <span class="Statement">then</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant"> Incorrect input, Hit enter.</span><span class="Statement">"</span>
<span class="Statement">exit</span>
<span class="Statement">fi</span>
<span class="Comment"># Parse information for donelist and download.</span>
<span class="Identifier">tlk</span>=<span class="PreProc">$(</span><span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$lst</span><span class="Statement">"</span><span class="Constant"> </span><span class="Special">| </span><span class="Statement">sed</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">${</span><span class="PreProc">ans</span><span class="PreProc">}</span><span class="Constant">q;d</span><span class="Statement">"</span><span class="PreProc">)</span>
<span class="Statement">echo</span><span class="Constant"> -n </span><span class="Statement">"</span><span class="PreProc">$tlk</span><span class="Constant">| </span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$don</span><span class="Statement">"</span> <span class="Comment"># Add title to donelist.</span>
<span class="Statement">echo</span><span class="Constant"> -e </span><span class="Statement">"</span><span class="Special">\n</span><span class="Constant"> </span><span class="PreProc">$tlk</span><span class="Statement">"</span>
<span class="Identifier">tlk</span>=<span class="PreProc">$(</span><span class="Statement">grep</span><span class="Special"> </span><span class="Special">-A4</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$tlk</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$rss</span><span class="Statement">"</span><span class="Special"> | </span><span class="Statement">grep</span><span class="Special"> </span><span class="Statement">"</span><span class="Constant"><enclosure</span><span class="Statement">"</span><span class="Special"> | \</span>
<span class="Statement">sed</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">s/<.*url=\"//;s/\".*>//;s/^[ \t]*//</span><span class="Statement">'</span><span class="PreProc">)</span> <span class="Comment"># Parse url to download.</span>
<span class="Comment"># Set job content and time to download.</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant">wget --content-disposition -P </span><span class="Statement">"</span><span class="PreProc">$ted</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$tlk</span><span class="Statement">""</span><span class="Constant"> </span>| at <span class="Constant">01</span>:<span class="Constant">11</span> <span class="Statement">></span> /dev/null <span class="Constant">2</span><span class="Statement">>&1</span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant"> </span><span class="PreProc">$tlk</span><span class="Statement">"</span><span class="Constant"> </span>| tee <span class="Special">-a</span> <span class="Statement">"</span><span class="PreProc">$don</span><span class="Statement">"</span> <span class="Comment"># Echo url & add to done.</span>
<span class="Statement">echo</span><span class="Constant"> -e </span><span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">atq</span><span class="PreProc">)</span><span class="Special">\n</span><span class="Constant"> Pending @ 01:11</span><span class="Statement">"</span><span class="Constant"> </span> <span class="Comment"># Query "at" to check job.</span>
<span class="Statement">exit</span>
</pre></body><br />
</html><br />
Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-30527530420689698692013-07-25T11:18:00.000-07:002013-08-09T09:36:17.987-07:00Own Media<style type="text/css">
<!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
.Identifier { color: #008b8b; }
.Special { color: #6a5acd; }
.Constant { color: #ff00ff; }
.PreProc { color: #800080; }
.Statement { color: #a52a2a; font-weight: bold; }
.Comment { color: #0000ff; }
-->
</style><br />
<pre><span class="Comment">#!/bin/bash</span>
<span class="Comment"># Filename: own-media</span>
<span class="Comment"># Version: 090813</span>
<span class="Comment"># Author: robz</span>
<span class="Comment"># The purpose of this script is to automate the transfer of TV media files</span>
<span class="Comment"># from another user account to my standard working account.</span>
<span class="Comment"># Source and destination directories will need changing to suit.</span>
<span class="Comment"># You can use this as a Nautilus script or via a launcher. You will need the</span>
<span class="Comment"># excellent "tvnamer" utility available from the Ubuntu Software Centre.</span>
<span class="Comment"># Ask for password to obtain administrator privileges.</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$UID</span><span class="Statement">"</span> <span class="Statement">!=</span> <span class="Statement">"</span><span class="Constant">0</span><span class="Statement">"</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span><span class="Statement">
sudo </span><span class="Special">-k</span><span class="Statement">;</span> <span class="Statement">exec</span><span class="Statement"> gksudo </span><span class="Special">--message</span> <span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">echo\</span>
<span class="Special"> </span><span class="Statement">'</span><span class="Constant">Enter your password please, you need root</span><span class="Statement">'</span><span class="Statement">;</span><span class="Special">\</span>
<span class="Special"> echo </span><span class="Statement">'</span><span class="Constant">privilages to access another user account.</span><span class="Statement">'</span><span class="PreProc">)</span><span class="Statement">"</span>\
<span class="Statement">"</span><span class="PreProc">$0</span><span class="Statement">"</span>
<span class="Statement">fi</span>
<span class="Identifier">USE</span>=<span class="Statement">"</span><span class="Constant">robz1</span><span class="Statement">"</span> <span class="Comment"># This scripts destination user name.</span>
<span class="Identifier">BAK</span>=<span class="Statement">"</span><span class="PreProc">$IFS</span><span class="Statement">"</span> <span class="Comment"># Backup internal field separator.</span>
<span class="Identifier">IFS</span>=<span class="Statement">"</span><span class="Special">\n</span><span class="Statement">"</span> <span class="Comment"># Set internal field separator.</span>
<span class="Identifier">DES</span>=<span class="Statement">"</span><span class="Constant">/home/robz1/Torrents/Complete/</span><span class="Statement">"</span> <span class="Comment"># Save directory minus one level.</span>
<span class="Identifier">ARC</span>=<span class="Statement">"</span><span class="Constant">/media/Backup/TV</span><span class="Statement">"</span> <span class="Comment"># Backup achive location.</span>
<span class="Statement">trap '</span><span class="Constant">IFS=</span><span class="Statement">"</span><span class="PreProc">$BAK</span><span class="Statement">"</span><span class="Constant">; exit</span><span class="Statement">'</span> INT TERM EXIT <span class="Comment"># Restore IFS on exit.</span>
<span class="Comment"># Select files to be copied.</span>
<span class="Identifier">FIL</span>=<span class="PreProc">$(</span><span class="Special">zenity --file-selection --multiple --</span><span class="Identifier">separator</span>=<span class="Statement">$'</span><span class="Special">\n</span><span class="Statement">'</span><span class="Special">\</span>
<span class="Special"> --</span><span class="Identifier">filename</span>=<span class="Statement">"</span><span class="Constant">/home/transmission/Downloads/Torrents/Complete/</span><span class="Statement">"</span><span class="Special">\</span>
<span class="Special"> --</span><span class="Identifier">title</span>=<span class="Statement">"</span><span class="Constant">Own-Media - >>SELECT FILE OR FILES<<</span><span class="Statement">"</span><span class="PreProc">)</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$?</span><span class="Statement">"</span> <span class="Statement">=</span> <span class="Constant">1</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span> <span class="Statement">exit</span> <span class="PreProc">$?</span><span class="Statement">;</span> <span class="Statement">fi</span> <span class="Comment"># Kill script on cancel.</span>
<span class="Comment"># File destination, this appends to the "$DES" initial destination variable.</span>
<span class="Identifier">STO</span>=<span class="PreProc">$(</span><span class="Special">zenity --</span><span class="Identifier">title</span>=<span class="Statement">"</span><span class="Constant">Own-Media</span><span class="Statement">"</span><span class="Special"> --</span><span class="Identifier">text</span>=<span class="Statement">"</span><span class="Constant">Select Destination</span><span class="Statement">"</span><span class="Special"> --</span><span class="Identifier">height</span>=<span class="Constant">170</span><span class="Special">\</span>
<span class="Special"> --list --radiolist --column </span><span class="Statement">"</span><span class="Constant">Select</span><span class="Statement">"</span><span class="Special"> --column </span><span class="Statement">"</span><span class="Constant">Send Files To...</span><span class="Statement">"</span><span class="Special">\</span>
<span class="Special"> TRUE </span><span class="Statement">"</span><span class="Constant">NewTV</span><span class="Statement">"</span><span class="Special"> FALSE </span><span class="Statement">"</span><span class="Constant">Somewhere else</span><span class="Statement">"</span><span class="PreProc">)</span> <span class="Comment"># Change "NewTV" to whatever you want.</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$?</span><span class="Statement">"</span> <span class="Statement">=</span> <span class="Constant">1</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span> <span class="Statement">exit</span> <span class="PreProc">$?</span><span class="Statement">;</span> <span class="Statement">fi</span>
<span class="Identifier">SAV</span>=<span class="Statement">"</span><span class="PreProc">$DES</span><span class="Statement">""</span><span class="PreProc">$STO</span><span class="Statement">""</span><span class="Constant">/</span><span class="Statement">"</span> <span class="Comment"># Set initial destination.</span>
<span class="Comment"># Select alternative file destination, ignore "$DES" and go somewhere else.</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$STO</span><span class="Statement">"</span> <span class="Statement">=</span> <span class="Constant">"Somewhere else"</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span>
<span class="Identifier">SAV</span>=<span class="PreProc">$(</span><span class="Special">zenity --file-selection --directory --</span><span class="Identifier">filename</span>=<span class="Statement">"</span><span class="Constant">/home/robz1/</span><span class="Statement">"</span>\
<span class="Special">--title=</span><span class="Statement">"</span><span class="Constant">Own-Media - >>SELECT DESTINATION<<</span><span class="Statement">")</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$?</span><span class="Statement">"</span> <span class="Statement">=</span> <span class="Constant">1</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span> <span class="Statement">exit</span> <span class="PreProc">$?</span><span class="Statement">;</span> <span class="Statement">fi</span>
<span class="Identifier">SAV</span>=<span class="Statement">"</span><span class="PreProc">$SAV</span><span class="Statement">""</span><span class="Constant">/</span><span class="Statement">"</span> <span class="Comment"># Reset destination, maybe.</span>
<span class="Statement">fi</span>
<span class="Comment"># Copy files to destination.</span>
<span class="Statement">while </span><span class="Statement">read</span><span class="Statement"> N</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span><span class="Statement"> cp </span><span class="Special">-u</span> <span class="Statement">"</span><span class="PreProc">$N</span><span class="Statement">"</span> <span class="Statement">"</span><span class="PreProc">$SAV</span><span class="Statement">"</span><span class="Statement">;</span> <span class="Statement">done</span> <span class="Statement"><<<</span> <span class="Statement">"</span><span class="PreProc">$FIL</span><span class="Statement">"</span>
<span class="Comment"># Take possession of files as destination user, change owner.</span>
<span class="Statement">while </span><span class="Statement">read</span><span class="Statement"> N</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span><span class="Statement"> chown </span><span class="Statement">"</span><span class="PreProc">$USE</span><span class="Statement">"</span>:<span class="Statement">"</span><span class="PreProc">$USE</span><span class="Statement">"</span> <span class="Statement">"</span><span class="PreProc">$SAV</span><span class="Statement">""</span><span class="PreProc">$(</span><span class="Special">basename </span><span class="Statement">"</span><span class="PreProc">$N</span><span class="Statement">"</span><span class="PreProc">)</span><span class="Statement">"</span><span class="Statement">;</span> <span class="Statement">done</span> <span class="Statement"><<<</span> <span class="Statement">"</span><span class="PreProc">$FIL</span><span class="Statement">"</span>
<span class="Statement">sudo </span><span class="Special">-k</span> <span class="Comment"># Drop superuser privileges.</span>
<span class="Comment"># Rename to standard format i.e. [ Show Name - [01x01] - Episode Name ].</span>
<span class="Statement">zenity </span><span class="Special">--question</span> <span class="Special">--title=</span> <span class="Special">--text=</span><span class="Statement">"</span><span class="Constant">Do you wish to rename &amp; achive.</span><span class="Statement">"</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$?</span><span class="Statement">"</span> <span class="Statement">=</span> <span class="Constant">1</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span> <span class="Statement">exit</span> <span class="PreProc">$?</span>
<span class="Statement">else</span>
<span class="Statement">while </span><span class="Statement">read</span><span class="Statement"> N</span><span class="Statement">;</span><span class="Statement"> </span><span class="Statement">do</span> tvnamer <span class="Special">--batch</span> <span class="Statement">"</span><span class="PreProc">$SAV</span><span class="Statement">""</span><span class="PreProc">$(</span><span class="Special">basename </span><span class="Statement">"</span><span class="PreProc">$N</span><span class="Statement">"</span><span class="PreProc">)</span><span class="Statement">"</span><span class="Statement">;</span> <span class="Statement">done</span> <span class="Statement"><<<</span> <span class="Statement">"</span><span class="PreProc">$FIL</span><span class="Statement">"</span>
<span class="Statement">fi</span>
<span class="Statement">cp </span><span class="Special">-aur</span> <span class="Statement">"</span><span class="PreProc">$SAV</span><span class="Statement">""</span><span class="Constant">.</span><span class="Statement">"</span> <span class="Statement">"</span><span class="PreProc">$ARC</span><span class="Statement">"</span> <span class="Comment"># Copy new files to a backup achive.</span>
</pre>
Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-92121924293140374112013-05-01T13:48:00.000-07:002013-07-14T03:12:45.099-07:00File Transfer<style type="text/css">
<!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
.Special { color: #6a5acd; }
.PreProc { color: #800080; }
.Constant { color: #ff00ff; }
.Statement { color: #a52a2a; font-weight: bold; }
.Identifier { color: #008b8b; }
.Comment { color: #0000ff; }
-->
</style><br />
<pre><span class="Comment">#!/bin/bash</span>
<span class="Comment"># Filename: ssh-transfer</span>
<span class="Comment"># Version: 140713</span>
<span class="Comment"># Author: robz</span>
<span class="Comment">#</span>
<span class="Comment"># This little script automates the transfer of media files from my PC to my XBMC</span>
<span class="Comment"># media centre, which runs on the embedded Openelec operating system installed</span>
<span class="Comment"># on a Raspberry Pi credit-card computer.</span>
<span class="Comment"># First install the rsync utility on your XBMC media centre via "ADD-ONS".</span>
<span class="Comment"># Use this excellent link to setup an ssh key for rsync to login automagicly. </span>
<span class="Comment"># <a href="http://www.thegeekstuff.com/2011/07/rsync-over-ssh-without-password/">http://www.thegeekstuff.com/2011/07/rsync-over-ssh-without-password/</a></span>
<span class="Comment"># Put this script in your "nautilus-scripts" directory select file/s to</span>
<span class="Comment"># transfer then right click and select this script from the Scripts menu.</span>
<span class="Comment"># Don't forget "chmod u+x /home/<user>/.gnome2/nautilus-scripts/ssh-transfer"</span>
<span class="Comment"># to make it executable.</span>
<span class="Comment"># Path to the "rsync" utility on Openelec.</span>
<span class="Identifier">RSYNC</span>=<span class="Statement">"</span><span class="Constant">/storage/.xbmc/addons/network.backup.rsync/bin/rsync</span><span class="Statement">"</span>
<span class="Identifier">IPADD</span>=<span class="Statement">"</span><span class="Constant">192.168.1.67</span><span class="Statement">"</span> <span class="Comment"># IP address of your Openelec box.</span>
<span class="Identifier">OELEC</span>=<span class="Statement">"</span><span class="Constant">/media/USBMEDIA/</span><span class="Statement">"</span> <span class="Comment"># Destination directory on XBMC.</span>
<span class="Comment"># Create newline delimited selected files list, handling spaces in file names.</span>
<span class="Identifier">FILES</span>=<span class="PreProc">$(</span><span class="Statement">echo </span><span class="Special">-e </span><span class="Statement">"</span><span class="PreProc">$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">|</span><span class="Special">\</span>
<span class="Statement"> awk </span><span class="Statement">'</span><span class="Constant">BEGIN { FS = "\n" } { printf "\"%s\" ", $1 }</span><span class="Statement">'</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">sed</span><span class="Special"> -e s#</span><span class="Special">\"</span><span class="Special">\"</span><span class="Special">##</span><span class="PreProc">)</span>
<span class="Comment"># Select destination for file transfer.</span>
<span class="Identifier">LOCTN</span>=<span class="PreProc">$(</span><span class="Statement">zenity\</span>
<span class="Special"> --title </span><span class="Statement">"</span><span class="Constant">SSH File Transfer</span><span class="Statement">"</span><span class="Special">\</span>
<span class="Special"> --height=</span><span class="Constant">230</span><span class="Special">\</span>
<span class="Special"> --text </span><span class="Statement">"</span><span class="Constant">Transfer Files To XBMC Media Centre.</span><span class="Statement">"</span><span class="Special">\</span>
<span class="Special"> --list --radiolist\</span>
<span class="Special"> --column </span><span class="Statement">"</span><span class="Constant">Select</span><span class="Statement">"</span><span class="Special"> --column </span><span class="Statement">"</span><span class="Constant">Send Files To...</span><span class="Statement">"</span><span class="Special">\</span>
<span class="Special"> TRUE New FALSE TV FALSE Movies FALSE Music FALSE Concerts</span><span class="PreProc">)</span>
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$?</span><span class="Statement">"</span> <span class="Statement">=</span> <span class="Constant">1</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span> <span class="Statement">exit</span> <span class="PreProc">$?</span><span class="Statement">;</span> <span class="Statement">fi</span> <span class="Comment"># Cancel/close? then exit script.</span>
<span class="Comment"># File count, how many files.</span>
<span class="Identifier">IFS</span>=<span class="PreProc">$(</span><span class="Statement">echo </span><span class="Special">-en </span><span class="Statement">"</span><span class="Special">\n\b</span><span class="Statement">"</span><span class="PreProc">)</span> <span class="Comment"># Loop handles names with spaces now.</span>
<span class="Statement">for </span>N <span class="Statement">in</span> <span class="PreProc">$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS</span>; <span class="Statement">do</span> <span class="Statement">((</span><span class="Identifier">NOFLS+</span>=<span class="Constant">1</span><span class="Statement">))</span><span class="Statement">;</span> <span class="Statement">done</span>
<span class="Comment"># Open a terminal to run rsync and view file transfer progress.</span>
<span class="Statement">gnome-terminal </span><span class="Special">--geometry</span> 70x30+48+0 <span class="Special">--title=</span><span class="Statement">"</span><span class="Constant">SSH File Transfer</span><span class="Statement">"</span> <span class="Special">-x</span><span class="Statement"> bash </span><span class="Special">-c</span><span class="Statement">\</span>
<span class="Statement">"</span><span class="Constant">echo 'Sending </span><span class="PreProc">$NOFLS</span><span class="Constant"> files to </span><span class="PreProc">$OELEC$LOCTN</span><span class="Constant">'; echo; tput civis;\</span>
<span class="Constant"> rsync -avP --rsync-path=</span><span class="PreProc">$RSYNC</span><span class="Constant"> -e ssh </span><span class="PreProc">$FILES</span><span class="Constant"> root@</span><span class="PreProc">$IPADD</span><span class="Constant">:</span><span class="PreProc">$OELEC$LOCTN</span><span class="Constant">;\</span>
<span class="Constant"> tput bold; tput setaf 3; echo;\</span>
<span class="Constant"> echo -e 'Done, hit a key to exit this shell, auto exit in 30s...';\</span>
<span class="Constant"> read -n1 -t30</span><span class="Statement">"</span>
<span class="Comment"># Update XBMC ibrary.</span>
<span class="Statement">ssh </span><span class="Special">-l</span> root <span class="PreProc">$IPADD</span> <span class="Statement">'</span><span class="Constant">xbmc-send --action="XBMC.updatelibrary(video)"</span><span class="Statement">' && </span><span class="Statement">\</span>
<span class="Statement">ssh </span><span class="Special">-l</span> root <span class="PreProc">$IPADD</span> <span class="Statement">'</span><span class="Constant">xbmc-send --action="XBMC.updatelibrary(music)"</span><span class="Statement">'</span>
</pre></body><br />
</html><br />
Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-82460273685976525192012-06-16T12:15:00.000-07:002013-05-01T13:26:36.594-07:00DVD Audio Rip<style type="text/css">
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
.PreProc { color: #a020f0; }
.Identifier { color: #008b8b; }
.Special { color: #6a5acd; }
.Constant { color: #ff00ff; }
.Statement { color: #a52a2a; font-weight: bold; }
.Comment { color: #0000ff; }
</style><br />
<pre><span class="Comment">#!/bin/bash</span>
<span class="Comment"># Filename: dvd-audio-rip.sh</span>
<span class="Comment"># Version: 160612</span>
<span class="Comment"># Author: robz</span>
<span class="Comment"># This script will rip the audio tracks off of a "concert dvd" to multiple mp3</span>
<span class="Comment"># files named Track 01, Track 02, etc. You then have options listen to them on</span>
<span class="Comment"># yer iPod, in your car or burn them to a cd. Quality of the rip depends on the</span>
<span class="Comment"># option switch "--lame_preset", see "man transcode" for other presets.</span>
<span class="Comment"># You may need to alter the "DRIVE" variable to suit, you'll also need packages</span>
<span class="Comment"># "transcode" and "lsdvd" to be installed.</span>
<span class="Comment"># Usage: Double click the script and select "Run in Terminal", Ctrl+c to stop.</span>
<span class="Statement">trap</span> <span class="Statement">"</span><span class="Constant">killall transcode; exit</span><span class="Statement">"</span> INT TERM EXIT <span class="Comment"># Terminate this script.</span>
<span class="Statement">mkdir</span> <span class="Special">-p</span> new-audio; <span class="Statement">cd</span> new-audio <span class="Comment"># Make a dir. for the mp3s.</span>
<span class="Identifier">DRIVE</span>=<span class="Statement">"</span><span class="Constant">/dev/sr0</span><span class="Statement">"</span> <span class="Comment"># Path to your dvd drive.</span>
<span class="Identifier">TITLE</span>=<span class="PreProc">$(</span><span class="Special">lsdvd -a </span><span class="Statement">"</span><span class="PreProc">$DRIVE</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> awk </span><span class="Statement">'</span><span class="Constant">/Longest track/ {print$3}</span><span class="Statement">'</span><span class="PreProc">)</span>
<span class="Identifier">CHPTR</span>=<span class="PreProc">$(</span><span class="Special">lsdvd -a -t</span><span class="Statement">"</span><span class="PreProc">$TITLE</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$DRIVE</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> awk </span><span class="Statement">'</span><span class="Constant">/Chapters/ {print $6}</span><span class="Statement">'</span><span class="PreProc">)</span>
<span class="Identifier">ASTRM</span>=<span class="Statement">"</span><span class="Constant">0</span><span class="Statement">"</span> <span class="Comment"># Audio stream (0=pcm 1=ac3).</span>
<span class="Statement">for </span>TRACK <span class="Statement">in</span> <span class="PreProc">$(</span><span class="Statement">eval</span><span class="Special"> echo </span><span class="Statement">"</span><span class="Constant">{1..</span><span class="PreProc">${</span><span class="PreProc">CHPTR</span><span class="Statement">%</span>,*<span class="PreProc">}</span><span class="Constant">}</span><span class="Statement">"</span><span class="PreProc">)</span> <span class="Comment"># Loop through the chapters.</span>
<span class="Statement">do</span>
transcode\
<span class="Statement"> -i</span> /dev/sr0\
<span class="Statement"> -x</span> null,dvd\
<span class="Statement"> -T</span> <span class="Statement">"</span><span class="PreProc">$TITLE</span><span class="Statement">"</span>,<span class="Statement">"</span><span class="PreProc">$TRACK</span><span class="Statement">"</span>,<span class="Constant">1</span>\
<span class="Statement"> -a</span> <span class="Statement">"</span><span class="PreProc">$ASTRM</span><span class="Statement">"</span>\
<span class="Statement"> -y</span> null,tcaud\
<span class="Special"> --lame_preset</span> extreme\
<span class="Statement"> -m</span> <span class="Statement">"</span><span class="Constant">Track </span><span class="Statement">"</span><span class="PreProc">$(</span><span class="Statement">printf</span><span class="Special"> </span><span class="Statement">"</span><span class="Constant">%02d</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$TRACK</span><span class="Statement">"</span><span class="PreProc">)</span>.mp3
<span class="Statement">done</span> <span class="Comment"># Files are on the desktop.</span></pre>
<pre><span class="Comment"> </span></pre>
<pre></pre>
<pre></pre>
Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-3962842101452351512012-02-11T06:37:00.000-08:002012-06-30T03:06:51.436-07:00Password card.<style type="text/css">
<!--
pre { white-space: pre-wrap; font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
.Constant { color: #ff00ff; }
.Statement { color: #a52a2a; font-weight: bold; }
.Special { color: #6a5acd; }
.PreProc { color: #a020f0; }
.Identifier { color: #008b8b; }
.Comment { color: #0000ff; }
-->
</style><br />
<pre><span class="Comment">#!/bin/bash</span>
<span class="Comment"># Filename: passcard.sh</span>
<span class="Comment"># Version: 120212</span>
<span class="Comment"># Author: robz</span>
<span class="Comment"># Generates a random alpha-numeric text block for a password card.</span>
<span class="Comment"># Just double click and run, the text block file will appear in the same </span>
<span class="Comment"># directory as the script.</span></pre>
<pre></pre>
<pre><span class="Identifier">DATEMARK</span>=<span class="PreProc">$(</span><span class="Special">date +%d-%m-%y</span><span class="Statement">"</span><span class="Constant"> @ </span><span class="Statement">"</span><span class="Special">%H:%M:%S</span><span class="PreProc">)</span>
<span class="Identifier">BLOCKLOC</span>=<span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">dirname </span><span class="PreProc">$0</span><span class="PreProc">)</span><span class="Constant">/Passcard generated on </span><span class="PreProc">$DATEMARK</span><span class="Constant">/Alphanumeric block.txt</span><span class="Statement">"</span>
<span class="Statement">mkdir</span> <span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">dirname </span><span class="Statement">"</span><span class="PreProc">$BLOCKLOC</span><span class="Statement">"</span><span class="PreProc">)</span><span class="Statement">"</span> <span class="Comment"># Create a new directory.</span>
<span class="Statement">for </span>x <span class="Statement">in</span> <span class="Special">{</span>1..8<span class="Special">}</span>; <span class="Statement">do</span> <span class="Comment"># Loop to create 8 lines.</span>
tr <span class="Special">-cd</span> <span class="Statement">[</span>:alnum:<span class="Statement">]</span> <span class="Statement"><</span> /dev/urandom <span class="Statement">|</span>\
head <span class="Statement">-c</span> <span class="Constant">29</span> <span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$BLOCKLOC</span><span class="Statement">"</span> <span class="Comment"># Write alpha-numeric line. </span>
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$BLOCKLOC</span><span class="Statement">"</span> <span class="Comment"># Move to next line.</span>
<span class="Statement">done</span>
<span class="Statement">echo</span><span class="Constant"> -e </span><span class="Statement">"</span><span class="Constant">Generated </span><span class="PreProc">$DATEMARK</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$BLOCKLOC</span><span class="Statement">"</span> <span class="Comment"># Date/time of generation.</span>
</pre>
<br />Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-16993781976327741222012-01-21T13:43:00.000-08:002013-05-01T13:50:55.850-07:00Simple timer with progress bar.<span style="font-family: monospace;"><span style="color: blue;"><br /></span></span>
<title>~/.scripts/progbar-timer.sh.html</title>
<span style="font-family: monospace;">
<span style="color: blue;">#!/bin/bash</span><br />
<span style="color: blue;"># Filename: progbar-timer.sh</span><br />
<span style="color: blue;"># Version: 110212</span><br />
<span style="color: blue;"># Author: robz</span><br />
<span style="color: blue;"># Improved from the "Egg Timer" script, a countdown timer with progress bar.</span><br />
<span style="color: blue;"># This one has an indication of time remaining provided by Zenity's progress</span><br />
<span style="color: blue;"># bar function. As usual you'll need to find a sound and icon for the variables</span><br />
<span style="color: blue;"># below, you might find the icon variable is correct, check the directory.</span><br />
<br />
<span style="color: darkcyan;">ICON</span>=/usr/share/app-install/icons/kalarm.png <span style="color: blue;"># Existing icon?</span><br />
<span style="color: darkcyan;">SOUND</span>=<span style="color: #a020f0;">$HOME</span>/Audio/2tone.wav <span style="color: blue;"># Your sound pref.</span><br />
<br />
<span style="color: darkcyan;">COUNT</span>=<span style="color: #a020f0;">$(</span><span style="color: slateblue;">zenity --title </span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">Egg Timer</span><span style="color: brown;"><b>"</b></span><span style="color: slateblue;"> --window-icon </span><span style="color: #a020f0;">$ICON</span><span style="color: slateblue;"> --text </span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">No decimals</span><span style="color: brown;"><b>"</b></span><span style="color: slateblue;">\</span><br />
<span style="color: slateblue;"> --entry-text </span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">eg. 10s or 5m or 2h</span><span style="color: brown;"><b>"</b></span><span style="color: slateblue;"> --entry</span><span style="color: #a020f0;">)</span> <span style="color: blue;"># Input dialogue.</span><br />
<span style="color: brown;"><b>if </b></span><span style="color: brown;"><b>[</b></span> <span style="color: #a020f0;">$?</span> <span style="color: brown;"><b>=</b></span> <span style="color: magenta;">1</span> <span style="color: brown;"><b>]</b></span><span style="color: brown;"><b>;</b></span> <span style="color: brown;"><b>then</b></span> <span style="color: brown;"><b>exit</b></span> <span style="color: #a020f0;">$?</span><span style="color: brown;"><b>;</b></span> <span style="color: brown;"><b>fi</b></span><br />
<br />
<span style="color: blue;"># Determine number of seconds to count down from depending on input suffix.</span><br />
<span style="color: brown;"><b>case</b></span> <span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">${</span><span style="color: #a020f0;">COUNT: -1</span><span style="color: #a020f0;">}</span><span style="color: brown;"><b>"</b></span> <span style="color: brown;"><b>in</b></span><br />
<span style="color: brown;"><b>"</b></span><span style="color: magenta;">S</span><span style="color: brown;"><b>"</b></span> <span style="color: brown;"><b>|</b></span> <span style="color: brown;"><b>"</b></span><span style="color: magenta;">s</span><span style="color: brown;"><b>"</b></span> <span style="color: brown;"><b>)</b></span> <span style="color: darkcyan;">COUNT</span>=<span style="color: #a020f0;">$(</span><span style="color: slateblue;">echo </span><span style="color: #a020f0;">$COUNT</span><span style="color: slateblue;"> </span><span style="color: brown;"><b>|</b></span><span style="color: slateblue;"> </span><span style="color: brown;"><b>sed</b></span><span style="color: slateblue;"> -s </span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">s/[Ss]//</span><span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">)</span> <span style="color: brown;"><b>;;</b></span><br />
<span style="color: brown;"><b>"</b></span><span style="color: magenta;">M</span><span style="color: brown;"><b>"</b></span> <span style="color: brown;"><b>|</b></span> <span style="color: brown;"><b>"</b></span><span style="color: magenta;">m</span><span style="color: brown;"><b>"</b></span> <span style="color: brown;"><b>)</b></span> <span style="color: darkcyan;">COUNT</span>=<span style="color: #a020f0;">$(</span><span style="color: slateblue;">echo </span><span style="color: #a020f0;">$COUNT</span><span style="color: slateblue;"> </span><span style="color: brown;"><b>|</b></span><span style="color: slateblue;"> </span><span style="color: brown;"><b>sed</b></span><span style="color: slateblue;"> -s </span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">s/[Mm]//</span><span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">)</span><span style="color: brown;"><b>;</b></span> <span style="color: brown;"><b>((</b></span>COUNT*<span style="color: brown;"><b>=</b></span><span style="color: magenta;">60</span><span style="color: brown;"><b>))</b></span> <span style="color: brown;"><b>;;</b></span><br />
<span style="color: brown;"><b>"</b></span><span style="color: magenta;">H</span><span style="color: brown;"><b>"</b></span> <span style="color: brown;"><b>|</b></span> <span style="color: brown;"><b>"</b></span><span style="color: magenta;">h</span><span style="color: brown;"><b>"</b></span> <span style="color: brown;"><b>)</b></span> <span style="color: darkcyan;">COUNT</span>=<span style="color: #a020f0;">$(</span><span style="color: slateblue;">echo </span><span style="color: #a020f0;">$COUNT</span><span style="color: slateblue;"> </span><span style="color: brown;"><b>|</b></span><span style="color: slateblue;"> </span><span style="color: brown;"><b>sed</b></span><span style="color: slateblue;"> -s </span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">s/[Hh]//</span><span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">)</span><span style="color: brown;"><b>;</b></span> <span style="color: brown;"><b>((</b></span>COUNT*<span style="color: brown;"><b>=</b></span><span style="color: magenta;">3600</span><span style="color: brown;"><b>))</b></span> <span style="color: brown;"><b>;;</b></span><br />
* <span style="color: brown;"><b>)</b></span> zenity --error --text <span style="color: brown;"><b>"</b></span><span style="color: magenta;"><span color=</span><span style="color: slateblue;">\"</span><span style="color: magenta;">red</span><span style="color: slateblue;">\"</span><span style="color: magenta;">><b>\</span><br />
<span style="color: magenta;"> </span><span style="color: slateblue;">\n</span><span style="color: magenta;">Use the form of 10s or 5m or 2h</span><span style="color: slateblue;">\n</span><span style="color: magenta;">No decimals allowed either.</b></span></span><span style="color: brown;"><b>"</b></span><br />
sh -c <span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$0</span><span style="color: brown;"><b>"</b></span> <span style="color: blue;"># On error restart.</span><br />
<span style="color: brown;"><b>exit</b></span> <span style="color: brown;"><b>;;</b></span><br />
<span style="color: brown;"><b>esac</b></span><br />
<br />
<span style="color: darkcyan;">START</span>=<span style="color: #a020f0;">$COUNT</span> <span style="color: blue;"># Set a start point. </span><br />
<br />
<span style="color: brown;"><b>until </b></span><span style="color: brown;"><b>[</b></span> <span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$COUNT</span><span style="color: brown;"><b>"</b></span> <span style="color: brown;"><b>-eq</b></span> <span style="color: brown;"><b>"</b></span><span style="color: magenta;">0</span><span style="color: brown;"><b>"</b></span> <span style="color: brown;"><b>]</b></span><span style="color: brown;"><b>;</b></span><span style="color: brown;"><b> </b></span><span style="color: brown;"><b>do</b></span> <span style="color: blue;"># Countdown loop.</span><br />
<span style="color: brown;"><b>((</b></span>COUNT-<span style="color: brown;"><b>=</b></span><span style="color: magenta;">1</span><span style="color: brown;"><b>))</b></span> <span style="color: blue;"># Decrement seconds.</span><br />
<span style="color: darkcyan;">PERCENT</span>=<span style="color: #a020f0;">$((</span><span style="color: magenta;">100-100</span><span style="color: slateblue;">*COUNT/START</span><span style="color: #a020f0;">))</span> <span style="color: blue;"># Calc percentage.</span><br />
<span style="color: brown;"><b>echo</b></span><span style="color: magenta;"> </span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">#Time remaining</span><span style="color: #a020f0;">$(</span><span style="color: slateblue;">echo </span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">obase=60;</span><span style="color: #a020f0;">$COUNT</span><span style="color: brown;"><b>"</b></span><span style="color: slateblue;"> </span><span style="color: brown;"><b>|</b></span><span style="color: slateblue;"> bc</span><span style="color: #a020f0;">)</span><span style="color: brown;"><b>"</b></span><span style="color: magenta;"> </span> <span style="color: blue;"># Convert to H:M:S.</span><br />
<span style="color: brown;"><b>echo</b></span><span style="color: magenta;"> </span><span style="color: #a020f0;">$PERCENT</span><span style="color: magenta;"> </span> <span style="color: blue;"># Outut for progbar.</span><br />
<span style="color: brown;"><b>sleep</b></span> <span style="color: magenta;">1</span><br />
<span style="color: brown;"><b>done</b></span> | </span><b style="color: brown; font-family: monospace;">zenity</b><span style="font-family: monospace;"> </span><span style="color: slateblue; font-family: monospace;">--title</span><span style="font-family: monospace;"> </span><span style="color: brown; font-family: monospace;"><b>"</b></span><span style="color: magenta; font-family: monospace;">Egg Timer</span><span style="color: brown; font-family: monospace;"><b>"</b></span><span style="font-family: monospace;"> </span><span style="color: slateblue; font-family: monospace;">--progress</span><span style="font-family: monospace;"> </span><span style="color: slateblue; font-family: monospace;">--percentage=0</span><span style="font-family: monospace;"> </span><span style="color: slateblue; font-family: monospace;">--text=</span><span style="color: brown; font-family: monospace;"><b>""</b></span><span style="color: brown; font-family: monospace;"><b>\</b></span><br />
<span style="font-family: monospace;">
<span style="color: slateblue;">--window-icon=</span><span style="color: #a020f0;">$ICON</span> <span style="color: slateblue;">--auto-close</span> <span style="color: blue;"># Progbar/time left.</span><br />
<span style="color: brown;"><b>if </b></span><span style="color: brown;"><b>[</b></span> <span style="color: #a020f0;">$?</span> <span style="color: brown;"><b>=</b></span> <span style="color: magenta;">1</span> <span style="color: brown;"><b>]</b></span><span style="color: brown;"><b>;</b></span> <span style="color: brown;"><b>then</b></span> <span style="color: brown;"><b>exit</b></span> <span style="color: #a020f0;">$?</span><span style="color: brown;"><b>;</b></span> <span style="color: brown;"><b>fi</b></span><br />
</span><b style="color: brown; font-family: monospace;">notify-send</b><span style="font-family: monospace;"> <span style="color: slateblue;">-i</span> <span style="color: #a020f0;">$ICON</span> <span style="color: brown;"><b>"</b></span><span style="color: magenta;">Egg Timer > ## TIMES UP ##</span><span style="color: brown;"><b>"</b></span> <span style="color: blue;"># Attention finish!</span><br />
/usr/bin/canberra-gtk-play <span style="color: slateblue;">--volume</span> <span style="color: magenta;">4</span> <span style="color: slateblue;">-f</span> <span style="color: #a020f0;">$SOUND</span> <span style="color: blue;"># Ding-dong finish!</span></span><br />
<b style="color: brown; font-family: monospace;">zenity</b><span style="font-family: monospace;"> <span style="color: slateblue;">--notification --window-icon=</span></span><b style="color: brown; font-family: monospace;">"</b><span style="color: #a020f0; font-family: monospace;">$ICON</span><b style="color: brown; font-family: monospace;">"\</b><br />
<span style="color: slateblue; font-family: monospace;"> --text</span><span style="font-family: monospace;"> </span><span style="color: brown; font-family: monospace;"><b>"</b></span><span style="color: magenta; font-family: monospace;">Egg Timer > ## TIMES UP ##</span><span style="color: brown; font-family: monospace;"><b>"</b></span><span style="font-family: monospace;"> </span><span style="color: blue; font-family: monospace;"># Indicate finished!</span><br />
<span style="font-family: monospace;"><span style="color: blue;"><br /></span></span>Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com7tag:blogger.com,1999:blog-762128904635102185.post-86875631684353749602012-01-08T07:36:00.000-08:002012-06-30T03:05:36.457-07:00Rip YouTube.<title>~/.scripts/Media_processing/Media_scripts/rip-youtube.html</title>
<span style="font-family: monospace;">
<span style="color: blue;">#!/bin/bash</span><br />
<span style="color: blue;"># Filename: rip-youtube</span><br />
<span style="color: blue;"># Version: 100112</span><br />
<span style="color: blue;"># Author: robz</span><br />
<span style="color: blue;"># This is intended to be used with the Mozilla Firefox browser and run as a</span><br />
<span style="color: blue;"># right-click nautilus script. It recovers "deleted" YouTube video/music files</span><br />
<span style="color: blue;"># from the /proc/ directory.</span><br />
<span style="color: blue;"># Wait until the file download has completed then run the script, copies of the</span><br />
<span style="color: blue;"># media will be placed in the $DEST directory.</span><br />
<span style="color: blue;"># You will need to run the script before closing the tabs or the browser.</span><br />
<br />
<span style="color: darkcyan;">DEST</span>=<span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$HOME</span><span style="color: magenta;">/Videos</span><span style="color: brown;"><b>"</b></span><br />
<span style="color: brown;"><b>find</b></span> /proc/*/fd/ <span style="color: slateblue;">-lname</span> <span style="color: brown;"><b>"</b></span><span style="color: magenta;">/tmp/Flash*</span><span style="color: brown;"><b>"</b></span> <span style="color: magenta;">2</span><span style="color: brown;"><b>></b></span>/dev/null </span><b style="color: brown; font-family: monospace;">| xargs</b><span style="font-family: monospace;"> </span><span style="color: slateblue; font-family: monospace;">-i</span><span style="color: slateblue; font-family: monospace;">{}</span><span style="font-family: monospace;"> </span><b style="color: brown; font-family: monospace;">cp</b><span style="font-family: monospace;"> </span><span style="color: slateblue; font-family: monospace;">{}</span><span style="font-family: monospace;"> </span><span style="color: brown; font-family: monospace;"><b>"</b></span><span style="color: #a020f0; font-family: monospace;">$DEST</span><span style="color: brown; font-family: monospace;"><b>"</b></span><br />
<span style="font-family: monospace;">
<br />
<span style="color: blue;"># Bare bones but effective.</span><br />
</span><br />
<span style="font-family: monospace;"><span style="color: blue;"># Err was effective, looking for a cure!</span></span><br />
<span style="font-family: monospace;"><span style="color: blue;"><br /></span></span>Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-65214396317932470542011-12-04T10:16:00.000-08:002012-01-02T07:50:50.970-08:00Evolution Mail backup.<span style="font-family: monospace;">
<span style="color: blue;">#!/bin/bash</span><br />
<span style="color: blue;"># Filename: evo-backup.sh</span><br />
<span style="color: blue;"># Version: 020112</span><br />
<span style="color: blue;"># Author: robz</span><br />
<span style="color: blue;"># This script creates an encrypted archive of all the relevant Evolution Mail </span><br />
<span style="color: blue;"># directories and preferences to act as a backup to said program. Now I know</span><br />
<span style="color: blue;"># Evo already provides a backup feature but AFAIK it isn't automateable and</span><br />
<span style="color: blue;"># doesn't encrypt. You will need to modify your Evolution launcher/s path/s to</span><br />
<span style="color: blue;"># point at this script instead of just "evolution"</span><br />
<span style="color: blue;"># If you have sym/hard links to your Evolution directories "tar" will follow</span><br />
<span style="color: blue;"># them, "find" however is not setup this way, you'll need the -L option if the</span><br />
<span style="color: blue;"># path to your backup directory uses links. see "man find" </span><br />
<span style="color: blue;"># You're required to have a personal gpg key setup, see "man gpg" or goto menu:</span><br />
<span style="color: blue;"># System > Preferences > Encryption and Keyrings and create one for yourself.</span><br />
<span style="color: blue;"># I would strongly suggest you do a manual Evolution generated backup before </span><br />
<span style="color: blue;"># running this script, as insurance, what works for me bla bla bla :)</span><br />
<br />
/usr/bin/evolution <span style="color: brown;"><b>></b></span> /dev/null & <span style="color: blue;"># Start Evolution Mail.</span><br />
<span style="color: darkcyan;">EVO_PID</span>=<span style="color: #a020f0;">$!</span> <span style="color: blue;"># Get Evolution process ID.</span><br />
<br />
<span style="color: brown;"><b>until </b></span><span style="color: brown;"><b>[</b></span> <span style="color: brown;"><b>!</b></span> <span style="color: brown;"><b>-e</b></span> /proc/<span style="color: #a020f0;">$EVO_PID</span> <span style="color: brown;"><b>]</b></span><span style="color: brown;"><b>;</b></span><span style="color: brown;"><b> </b></span><span style="color: brown;"><b>do</b></span> <span style="color: brown;"><b>sleep</b></span> <span style="color: magenta;">2</span><span style="color: brown;"><b>;</b></span> <span style="color: brown;"><b>done</b></span> <span style="color: blue;"># Loop till quit Evolution.</span><br />
<br />
<span style="color: darkcyan;">BUP_LOC</span>=<span style="color: brown;"><b>"</b></span><span style="color: magenta;">/media/Ext4Backup/Evo-backup</span><span style="color: brown;"><b>"</b></span> <span style="color: blue;"># Where to save backup.</span><br />
<span style="color: darkcyan;">BUPNAME</span>=<span style="color: brown;"><b>"</b></span><span style="color: magenta;">evo-backup </span><span style="color: #a020f0;">$(</span><span style="color: slateblue;">date +%H:%M</span><span style="color: brown;"><b>"</b></span><span style="color: magenta;"> </span><span style="color: brown;"><b>"</b></span><span style="color: slateblue;">%d%m%y</span><span style="color: #a020f0;">)</span><span style="color: magenta;">.tar.gz</span><span style="color: brown;"><b>"</b></span> <span style="color: blue;"># Dated backup file name.</span></span><br />
<span style="font-family: monospace;">
<span style="color: darkcyan;">CRYPTTO</span>=<span style="color: brown;"><b>"</b></span><span style="color: magenta;">robz-public-key</span><span style="color: brown;"><b>"</b></span><span style="color: blue;"> # Your gpg public key name.</span></span><br />
<span style="font-family: monospace;">
<br />
<span style="color: brown;"><b>if </b></span><span style="color: brown;"><b>[</b></span> <span style="color: brown;"><b>!</b></span> <span style="color: brown;"><b>-e</b></span> <span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$BUP_LOC</span><span style="color: brown;"><b>"</b></span> <span style="color: brown;"><b>]</b></span><span style="color: brown;"><b>;</b></span> <span style="color: brown;"><b>then</b></span> <span style="color: blue;"># Do any backups exist? </span><br />
<span style="color: brown;"><b>mkdir</b></span> <span style="color: brown;"><b>-p</b></span> <span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$BUP_LOC</span><span style="color: brown;"><b>"</b></span> <span style="color: blue;"># Create save to directory.</span><br />
<span style="color: blue;"># Create a README file with restore instructions, put it with the backups.</span><br /> <span class="Apple-style-span" style="color: brown;"><b>cat</b></span></span><span class="Apple-style-span" style="font-family: monospace;"> </span><span style="color: brown; font-family: monospace;"><b>></b></span><span class="Apple-style-span" style="font-family: monospace;"> </span><span style="color: brown; font-family: monospace;"><b>"</b></span><span style="color: #a020f0; font-family: monospace;">$BUP_LOC</span><span style="color: magenta; font-family: monospace;">/README</span><span style="color: brown; font-family: monospace;"><b>"</b></span><span class="Apple-style-span" style="font-family: monospace;"> </span><span style="color: brown; font-family: monospace;"><b><< EOF</b></span><br />
<span style="font-family: monospace;">
<span style="color: magenta;"># The stuff between the angle brackets will need changing to your specifics.</span><br />
<span style="color: magenta;"># To restore this Evolution Mail backup, in a terminal do:</span><br />
<br />
<span style="color: magenta;">cd <The location of your encrypted backup file></span><br />
<span style="color: magenta;"># The next line when executed will require your gpg NOT your login password.</span><br />
<span style="color: magenta;">gpg --decrypt --output "evo-backup" "evo-backup <relevent date>.gpg"</span><br />
<span style="color: magenta;"># Unzip the achive.</span><br />
<span style="color: magenta;">tar xzf evo-backup</span><br />
<span style="color: magenta;"># You will need to use Ctrl+H to make the files visible after unzipping.</span><br />
<span style="color: magenta;">evolution --force-shutdown</span><br />
<span style="color: magenta;">gconftool-2 --shutdown</span><br />
<span style="color: magenta;"># The next commands will overwrite existing configurations and files, be sure!</span><br />
<span style="color: magenta;">gconftool-2 --unload .evolution.xml </span><br />
<span style="color: magenta;">gconftool-2 --load .evolution.xml</span><br />
<span style="color: magenta;">cp -r .evolution .camel_certs "</span><span style="color: #a020f0;">$HOME</span><span style="color: magenta;">"</span><br />
<span style="color: magenta;"># Done.</span><br />
<span style="color: magenta;"># How are we now? -- Ready!</span><br />
<span style="color: brown;"><b>EOF</b></span><br />
<span style="color: brown;"><b>fi</b></span><br />
<br />
<span style="color: blue;"># Delete backups more than 5 days old.</span><br />
<span style="color: brown;"><b>find</b></span> <span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$BUP_LOC</span><span style="color: brown;"><b>"</b></span> <span style="color: slateblue;">-name</span> <span style="color: brown;"><b>"</b></span><span style="color: magenta;">evo-backup*</span><span style="color: brown;"><b>"</b></span> <span style="color: slateblue;">-mtime</span> <span style="color: slateblue;">+5</span> <span style="color: slateblue;">-delete</span><br />
<span style="color: blue;"># Trims to one backup a day, the newest. </span><br />
<span style="color: brown;"><b>find</b></span> <span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$BUP_LOC</span><span style="color: brown;"><b>"</b></span> <span style="color: slateblue;">-name</span> <span style="color: brown;"><b>"</b></span><span style="color: magenta;">evo-backup*</span><span style="color: brown;"><b>"</b></span> <span style="color: slateblue;">-daystart -mtime</span> <span style="color: slateblue;">-1 -delete</span></span><br />
<span style="font-family: monospace;"><span class="Apple-style-span" style="color: slateblue;"><br /></span>
</span><b style="color: brown; font-family: monospace;">evolution</b><span style="font-family: monospace;"> <span style="color: slateblue;">--force-shutdown</span> <span style="color: brown;"><b>></b></span> /dev/null <span style="color: blue;"># Kill Evo processes.</span></span><br />
<b style="color: brown; font-family: monospace;">gconftool-2</b><b style="font-family: monospace;"> </b><span style="font-family: monospace;"><span style="color: slateblue;">--shutdown</span> <span style="color: blue;"># Kill gconftool-2</span></span><br />
<b style="color: brown; font-family: monospace;">gconftool-2 </b><span style="font-family: monospace;"><span style="color: slateblue;">--dump</span> /apps/evolution <span style="color: brown;"><b>></b></span> .evolution.xml <span style="color: blue;"># Create preferences file.</span></span><br />
<span style="font-family: monospace;"><span style="color: blue;"># Create compressed encrypted archive.</span></span><br />
<b style="color: brown; font-family: monospace;">tar</b><span style="font-family: monospace;"> <span style="color: slateblue;">-chz</span> .evolution .camel_certs .evolution.xml <span style="color: slateblue;">-f</span> <span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$BUP_LOC</span><span style="color: magenta;">/</span><span style="color: #a020f0;">$BUPNAME</span><span style="color: brown;"><b>"</b></span></span><br />
<b style="color: brown; font-family: monospace;">gpg</b><span style="font-family: monospace;"> <span style="color: slateblue;">--no-permission-warning</span> <span style="color: slateblue;">--encrypt</span> <span style="color: slateblue;">--recipient</span> <span style="color: brown;"><b>\</b></span><br />
<span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$CRYPTTO</span><span style="color: brown;"><b>"</b></span> <span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$BUP_LOC</span><span style="color: magenta;">/</span><span style="color: #a020f0;">$BUPNAME</span><span style="color: brown;"><b>"</b></span> && <span style="color: brown;"><b>\</b></span><br /><span style="color: brown;"><b>shred </b></span><span style="color: slateblue;">-zu</span> <span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$BUP_LOC</span><span style="color: magenta;">/</span><span style="color: #a020f0;">$BUPNAME</span><span style="color: brown;"><b>"</b></span> .evolution.xml <span style="color: blue;"># Clean up temp files.</span><br />
/usr/lib/evolution/*/evolution-alarm-notify & <span style="color: blue;"># Restart Evolution alarms.</span><br />
<span style="color: brown;"><b>exit</b></span><br />
<br />
</span>Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-78757728039682679222011-07-01T12:43:00.000-07:002011-08-07T06:59:59.211-07:00What torrents?<style type="text/css">
<!--
pre { font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
.PreProc { color: #a020f0; }
.Constant { color: #ff00ff; }
.Special { color: #6a5acd; }
.Statement { color: #a52a2a; font-weight: bold; }
.Identifier { color: #008b8b; }
.Comment { color: #0000ff; }
-->
</style><br />
<span class="Comment">#!/bin/bash</span><br />
<span class="Comment"># Filename: check_torrents.sh</span><br />
<span class="Comment"># Version: 070811</span><br />
<span class="Comment"># Author: robz</span><br />
<span class="Comment"># This script gives a quick peek and an opportunity to edit, what you have</span><br />
<span class="Comment"># active in the Transmission bit torrent client, without loading the program</span><br />
<span class="Comment"># itself. It runs from a launcher located in my $HOME/Torrents/Complete/</span><br />
<span class="Comment"># directory, the line for the "Command:" box of the launcher being:</span><br />
<span class="Comment"># gnome-terminal --title="Check Torrents" -x sh -c "path to/check_torrents.sh"</span><br />
<span class="Comment"># Deletions are sent to Trash rather than rm'd, just in case you fcuk up :)</span><br />
<br />
<span class="Identifier">C2</span>=<span class="Statement">"</span><span class="Special">\e</span><span class="Constant">[1;32m</span><span class="Statement">"</span> <span class="Identifier">C6</span>=<span class="Statement">"</span><span class="Special">\e</span><span class="Constant">[1;36m</span><span class="Statement">"</span> <span class="Identifier">C7</span>=<span class="Statement">"</span><span class="Special">\e</span><span class="Constant">[1;37m</span><span class="Statement">"</span> <span class="Comment"># Green cyan white.</span><br />
<span class="Identifier">TSCPT</span>=<span class="Statement">"</span><span class="PreProc">$0</span><span class="Statement">"</span> <span class="Comment"># Path to this script.</span><br />
<span class="Identifier">TRASH</span>=<span class="PreProc">$HOME</span>/.<span class="Statement">local</span>/share/Trash <span class="Comment"># Trash location.</span><br />
<span class="Identifier">TRNTS</span>=<span class="PreProc">$HOME</span>/.config/transmission/torrents <span class="Comment"># Trackers location.</span><br />
<span class="Identifier">CLMNS</span>=<span class="PreProc">$((</span><span class="Special">$</span><span class="PreProc">(</span><span class="Statement">ls</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$TRNTS</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> wc -L</span><span class="PreProc">)</span><span class="Special">+</span><span class="Constant">10</span><span class="PreProc">))</span> <span class="Comment"># Terminal columns.</span><br />
<span class="Identifier">LINES</span>=<span class="PreProc">$(</span><span class="Statement">ls</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$TRNTS</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> wc -l</span><span class="PreProc">)</span> <span class="Comment"># Terminal lines.</span><br />
<span class="Identifier">VRBLS</span>=<span class="PreProc">$(</span><span class="Statement">ls</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$TRNTS</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> nl</span><span class="PreProc">) </span><span class="Comment"># Torrent list verbal.</span><br />
<span class="Identifier">VRBL2</span>=<span class="Statement">"</span><span class="Constant">Select number to delete or hit Enter to exit. </span><span class="Statement">"</span> <span class="Comment"># More verbal.</span><br />
<br />
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">"</span><span class="PreProc">$LINES</span><span class="Statement">"</span> <span class="Statement">-eq</span> <span class="Statement">"</span><span class="Constant">0</span><span class="Statement">"</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span> <span class="Comment"># Anything in there?</span><br />
<span class="Identifier">VRBLS</span>=<span class="Statement">"</span><span class="Constant">No trackers are loaded.</span><span class="Statement">"</span><span class="Statement">;</span> <span class="Identifier">VRBL2</span>=<span class="Statement">"</span><span class="Constant">Hit Enter to exit. </span><span class="Statement">"</span><span class="Statement">;</span> <span class="Identifier">CLMNS</span>=<span class="Constant">25</span><br />
<span class="Statement">fi</span><br />
<br />
<span class="Comment"># Escape sequences auto size the terminal window</span><span class="Apple-style-span" style="color: blue;"> and set</span><span class="Apple-style-span" style="color: blue;"> the background colour.</span><br />
<span class="Statement">echo</span><span class="Constant"> -ne </span><span class="Statement">"</span><span class="Special">\e</span><span class="Constant">[8;</span><span class="PreProc">$(</span><span class="Statement">(</span><span class="PreProc">${</span><span class="PreProc">LINES</span><span class="PreProc">}</span><span class="Special">+</span><span class="Constant">5</span><span class="Statement">)</span><span class="PreProc">)</span><span class="Constant">;</span><span class="PreProc">${</span><span class="PreProc">CLMNS</span><span class="PreProc">}</span><span class="Constant">t</span><span class="Statement">"</span>; <span class="Statement">echo</span><span class="Constant"> -ne </span><span class="Statement">"</span><span class="Special">\e</span><span class="Constant">[44m</span><span class="Statement">""</span><span class="Special">\e</span><span class="Constant">[37m</span><span class="Statement">""</span><span class="Special">\033</span><span class="Constant">[2J</span><span class="Statement">"</span><br />
<span class="Statement">echo</span><span class="Constant"> -e </span><span class="PreProc">$C7</span><span class="Statement">"</span><span class="Constant">Active torrents </span><span class="PreProc">$LINES</span><span class="Constant">:</span><span class="Special">\n</span><span class="Statement">""</span><span class="PreProc">$C6</span><span class="Statement">"</span>; <span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="PreProc">$VRBLS</span><span class="Statement">"</span>; <span class="Statement">echo</span><span class="Constant"> -e </span><span class="PreProc">$C2</span><br />
<br />
<span class="Statement">read</span> <span class="Special">-n1</span> <span class="Special">-p</span> <span class="Statement">"</span><span class="PreProc">$VRBL2</span><span class="Statement">"</span> SEL <span class="Comment"># Delete or exit.</span><br />
<span class="Statement">if </span><span class="Special">[[</span> <span class="Statement">"</span><span class="PreProc">$LINES</span><span class="Statement">"</span> <span class="Statement">-gt</span> <span class="Statement">"</span><span class="Constant">0</span><span class="Statement">"</span> <span class="Statement">&&</span> <span class="Statement">"</span><span class="PreProc">$SEL</span><span class="Statement">"</span> <span class="Statement">-gt</span> <span class="Statement">"</span><span class="Constant">0</span><span class="Statement">"</span> <span class="Statement">&&</span> <span class="Statement">"</span><span class="PreProc">$LINES</span><span class="Statement">"</span> <span class="Statement">-ge</span> <span class="Statement">"</span><span class="PreProc">$SEL</span><span class="Statement">"</span> <span class="Special">]]</span><span class="Statement">;</span> <span class="Statement">then</span><br />
<span class="Identifier">MVFL</span>=<span class="Statement">"</span><span class="PreProc">$TRNTS</span><span class="Constant">/</span><span class="PreProc">$(</span><span class="Statement">ls</span><span class="Special"> </span><span class="Statement">"</span><span class="PreProc">$TRNTS</span><span class="Statement">"</span><span class="Special"> </span><span class="Statement">|</span><span class="Special"> </span><span class="Statement">sed</span><span class="Special"> -n </span><span class="Statement">"</span><span class="PreProc">$SEL</span><span class="Statement">"</span><span class="Special">p</span><span class="PreProc">)</span><span class="Statement">"</span> <span class="Comment"># Get selection.</span><br />
<span class="Identifier">INFO</span>=<span class="Statement">"</span><span class="PreProc">$TRASH</span><span class="Constant">/info/</span><span class="PreProc">$(</span><span class="Special">basename </span><span class="PreProc">$MVFL</span><span class="PreProc">)</span><span class="Constant">.trashinfo</span><span class="Statement">"<span class="Apple-style-span" style="color: blue; font-weight: normal;"> # Trash info location.</span></span><br />
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant">[Trash Info]</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">></span> <span class="Statement">"</span><span class="PreProc">$INFO</span><span class="Statement">"</span> <span class="Comment"># Create Trash info.</span><br />
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant">Path=</span><span class="PreProc">$TRNTS</span><span class="Constant">/</span><span class="PreProc">$(</span><span class="Special">basename </span><span class="PreProc">$MVFL</span><span class="PreProc">)</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$INFO</span><span class="Statement">"</span><br />
<span class="Statement">echo</span><span class="Constant"> </span><span class="Statement">"</span><span class="Constant">DeletionDate=</span><span class="PreProc">$(</span><span class="Special">date +%FT%T</span><span class="PreProc">)</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">>></span> <span class="Statement">"</span><span class="PreProc">$INFO</span><span class="Statement">"</span><br />
<span class="Statement">mv</span> <span class="Statement">"</span><span class="PreProc">$MVFL</span><span class="Statement">"</span> <span class="Statement">"</span><span class="PreProc">$TRASH</span><span class="Constant">/files</span><span class="Statement">"</span> <span class="Comment"># Send file to trash.</span><br />
<span class="Comment"># Restart terminal and re-list remaining torrent tracker files.</span><br />
gnome-terminal --<span class="Identifier">geometry</span>=+<span class="Constant">0</span>+<span class="Constant">0</span> --<span class="Identifier">title</span>=<span class="Statement">"<span class="Apple-style-span" style="color: magenta;"><span class="Apple-style-span" style="font-weight: normal;">Check Torrents</span></span></span><span class="Statement">"</span> <span class="Statement">-x</span> sh <span class="Statement">-c</span> <span class="Statement">"</span><span class="PreProc">$TSCPT</span><span class="Statement">"</span><br />
<span class="Statement">fi</span><br />
<span class="Statement"><br />
</span>Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-48323849951893786342011-06-13T10:57:00.000-07:002011-08-14T05:43:19.832-07:00Hosts file updater.<style type="text/css">
<!--
pre { font-family: monospace; color: #000000; background-color: #ffffff; }
body { font-family: monospace; color: #000000; background-color: #ffffff; }
.Special { color: #6a5acd; }
.PreProc { color: #a020f0; }
.Constant { color: #ff00ff; }
.Statement { color: #a52a2a; font-weight: bold; }
.Identifier { color: #008b8b; }
.Comment { color: #0000ff; }
-->
</style> <br />
<span class="Comment">#!/bin/bash</span><br />
<span class="Comment"># Filename: hosts-update ## file name changed, see "<a href="https://bugs.launchpad.net/ubuntu/+source/debianutils/+bug/38022">(bug #38022)</a>"</span><br />
<span class="Comment"># Version: 030711</span><br />
<span class="Comment"># Author: robz</span><br />
<span class="Comment"># The hosts file, simple text file that associates IP addresses with hostnames,</span><br />
<span class="Comment"># <a href="http://en.wikipedia.org/wiki/Hosts_%28file%29">http://en.wikipedia.org/wiki/Hosts_%28file%29</a> also some more reading and the</span><br />
<span class="Comment"># zipped source file <a href="http://winhelp2002.mvps.org/hosts.htm">http://winhelp2002.mvps.org/hosts.htm</a></span><br />
<span class="Comment"># The script will backup Ubuntu's original hosts file, it must be the original</span><br />
<span class="Comment"># to not a modded one, this is insurance so if it all goes pear shaped you'll</span><br />
<span class="Comment"># have a clean file escape route, just use as a template and copy it over.</span><br />
<span class="Comment"># This script needs to run as root, or automate by dropping it in cron weekly</span><br />
<span class="Comment"># and doing "sudo chmod 755 /etc/cron.weekly/hosts-update" in a terminal.</span><br />
<span class="Comment"># In case you where wondering, apparently with "127.0.0.1" your browser will</span><br />
<span class="Comment"># wait for a timeout hence the editing to "0.0.0.0" which will go straight to</span><br />
<span class="Comment"># "404 not found" without waiting.</span><br />
<br />
<span class="Comment"># EXCLUDES list for any sites you really want but are listed so won't load.</span><br />
<span class="Comment"># To exclude a range just list the common part of the pattern, i.e. "666.com"</span><br />
<span class="Comment"># will affect many of the addresses whereas "xs.666.co.ruok" is more exclusive,</span><br />
<span class="Comment"># case matters by the way Google/google.</span><br />
<span class="Identifier">EXCLUDES</span>=<span class="Statement">"</span><br />
<span class="Constant">troganviriidownload.doh</span><br />
<span class="Constant">www.skankyhookers.ick</span><br />
<span class="Constant">malwaredrivebyselfservice.eek</span><br />
<span class="Constant">deaddodgysoftwarez.duh</span><br />
<span class="Constant">google-analytics</span><br />
<span class="Constant">googleadservices</span><br />
<span class="Constant">adservices.google</span><br />
<span class="Constant">adsenseshare.com</span><br />
<span class="Statement">"</span> <span class="Comment"># Don't block these.</span><br />
<span class="Identifier">URLHOSTS</span>=<span class="Statement">"</span><span class="Constant"><a href="http://winhelp2002.mvps.org/hosts.zip">http://winhelp2002.mvps.org/hosts.zip</a></span><span class="Statement">"</span> <span class="Comment"># Hosts download site.</span><br />
<span class="Identifier">BAKHOSTS</span>=<span class="Statement">"</span><span class="Constant">/etc/hosts.bak</span><span class="Statement">"</span> <span class="Comment"># Insurance file.</span><br />
<span class="Identifier">INMAILTO</span>=<span class="Statement">"</span><span class="Constant">robz1@</span><span class="PreProc">$HOSTNAME</span><span class="Constant"> root@</span><span class="PreProc">$HOSTNAME</span><span class="Statement">"</span> <span class="Comment"># Error/or not mail.</span><br />
<br />
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">!</span> <span class="Statement">-e</span> <span class="Statement">"</span><span class="PreProc">$BAKHOSTS</span><span class="Statement">"</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span><br />
cp /etc/hosts <span class="Statement">"</span><span class="PreProc">$BAKHOSTS</span><span class="Statement">"</span> <span class="Comment"># Backup original file.</span><br />
<span class="Statement"> chmod</span> <span class="Constant">444</span> <span class="Statement">"</span><span class="PreProc">$BAKHOSTS</span><span class="Statement">"</span> <span class="Comment"># Make it read only.</span><br />
<span class="Statement">fi</span><br />
<br />
<span class="Statement">cd</span> /tmp<br />
<br />
<span class="Comment"># Wget the new hosts file.</span><br />
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">!</span> <span class="Statement">-e</span> <span class="Statement">"</span><span class="Constant">hosts.zip</span><span class="Statement">"</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span> wget <span class="Statement">-q</span> <span class="Statement">-i</span> <span class="Statement">-T</span> <span class="Constant">60</span> <span class="Statement">"</span><span class="PreProc">$URLHOSTS</span><span class="Statement">"</span><span class="Statement">;</span> <span class="Statement">fi</span><br />
<span class="Statement">if </span><span class="Statement">[</span> <span class="Statement">-e</span> <span class="Statement">"</span><span class="Constant">hosts.zip</span><span class="Statement">"</span> <span class="Statement">]</span><span class="Statement">;</span> <span class="Statement">then</span><br />
<span class="Statement"> echo</span><span class="Constant"> -e </span><span class="Statement">"</span><span class="Constant">New hosts file installed, be aware:-\</span><br />
<span class="Constant"> \nThis may affect web access to some previously ok websites.</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">|</span> \<br />
mail <span class="Statement">-s</span> <span class="Statement">"</span><span class="Constant">[HOSTS FILE] Good download.</span><span class="Statement">"</span> <span class="PreProc">$INMAILTO</span><br />
zenity --notification --text <b style="color: brown;">"</b><span style="color: magenta;">New Hosts file - Check web access</span><b style="color: brown;">" & disown</b><br />
<span class="Statement">else</span> <span class="Statement">echo</span><span class="Constant"> -e </span><span class="Statement">"</span><span class="Constant">Non critical: The weekly download of hosts.zip has failed.<span style="color: black;">\</span></span><br />
<span class="Special"> \n</span><span class="Constant">Run hosts-update.sh as root to install the latest hosts file.</span><span class="Statement">"</span><span class="Constant"> </span><span class="Statement">|</span> \<br />
mail <span class="Statement">-s</span> <span class="Statement">"</span><span class="Constant">[HOSTS FILE] Failed download.</span><span class="Statement">"</span> <span class="PreProc">$INMAILTO</span><br />
<span class="Statement"> exit</span> <span class="Constant">1</span><br />
<span class="Statement">fi</span><br />
<br />
unzip <span class="Special">-c</span> <span class="Statement">"</span><span class="PreProc">$(</span><span class="Special">basename </span><span class="Statement">"</span><span class="PreProc">$URLHOSTS</span><span class="Statement">"</span><span class="PreProc">)</span><span class="Statement">"</span> HOSTS Hosts hosts <span class="Constant">2</span><span class="Statement">></span>/dev/null <span class="Statement">></span> RAWHOSTS<br />
<span class="Statement">sed</span> <span class="Special">-i</span> <span class="Statement">'</span><span class="Constant">s/.$//</span><span class="Statement">'</span> RAWHOSTS <span class="Comment"># Convert dos to unix.</span><br />
<br />
<span class="Comment"># Create hybrid hosts file.</span><br />
cat <span class="Statement">></span> /tmp/hosts <span class="Statement"><< EOF</span><br />
<span class="Constant">#-----------------------------------------------------------------------------</span><br />
<span class="Constant"># This hosts block list was created on </span><span class="PreProc">$(</span><span class="Special">date</span><span class="PreProc">)</span><br />
<span class="Constant"># using the script "hosts-update" by robz.</span><br />
<span class="Constant"># It combines the original Ubuntu hosts file saved as "</span><span class="PreProc">$BAKHOSTS</span><span class="Constant">"</span><br />
<span class="Constant"># and the latest the hosts file from: </span><span class="PreProc">$URLHOSTS</span><br />
<span class="Constant">#-----------------------------------------------------------------------------</span><br />
<br />
<span class="Constant"># Start of default hostfile list text copied from "</span><span class="PreProc">$BAKHOSTS</span><span class="Constant">"</span><br />
<br />
<span class="PreProc">$(</span><span class="Special">cat </span><span class="PreProc">$BAKHOSTS</span><span class="PreProc">)</span><br />
<br />
<span class="Constant"># End of default hostfile list text, what follows is supplemental.</span><br />
<span class="Constant">#</span><br />
<span class="Constant"># Any failure to connect to a previously ok website may be traced to an entry</span><br />
<span class="Constant"># in the following list. Modifications to the list should be double hash ##</span><br />
<span class="Constant"># commented out rather than deleted.</span><br />
<span class="Constant">#</span><br />
<span class="PreProc">$(</span><span class="Statement">sed</span><span class="Special"> </span><span class="Statement">'</span><span class="Constant">s/127.0.0.1/0.0.0.0/g</span><span class="Statement">'</span><span class="Special"> RAWHOSTS </span><span class="Statement">|</span><span class="Special"> \</span><br />
<span class="Statement">sed</span><span class="Special"> -ne </span><span class="Statement">'</span><span class="Constant">1,/of lines/!p</span><span class="Statement">'</span><span class="Special"> -e </span><span class="Statement">'</span><span class="Constant">1,/of entries/!p</span><span class="Statement">'</span><span class="PreProc">)</span><br />
<br />
<span class="Statement">EOF</span><br />
<br />
<span class="Comment"># Implement excludes list to comment out addresses you don't want to block.</span><br />
<span class="Statement">for </span>MODHOSTS <span class="Statement">in</span> <span class="PreProc">$EXCLUDES</span>; <span class="Statement">do</span><br />
<span class="Statement">sed</span> <span class="Statement">-i</span> <span class="Statement">'</span><span class="Constant">/</span><span class="Statement">'</span><span class="PreProc">$MODHOSTS</span><span class="Statement">'</span><span class="Constant">/ s/^\([^## ]\)/## \1/g</span><span class="Statement">'</span> hosts<br />
<span class="Statement">done</span><br />
<span class="Statement">mv</span> <span class="Special">-f</span> hosts /etc/hosts <span class="Comment"># Overwrite old hosts.</span><br />
<span class="Comment"><br />
</span>Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-86343407459919542322011-05-05T09:13:00.000-07:002011-05-17T08:05:41.672-07:00P2P Blocklist tool<span style="font-family: monospace;">
<span style="color: blue;">#!/bin/bash</span><br />
<span style="color: blue;"># Filename: blocklists.sh</span><br />
<span style="color: blue;"># Version: 170511</span><br />
<span style="color: blue;"># Author: robz</span><br />
<span style="color: blue;"># AFAIK "transmission" can only be configured to download a single blocklist</span><br />
<span style="color: blue;"># automatically. That default, if set, being the level1 blocklist from</span><br />
<span style="color: blue;"># <a href="http://update.transmissionbt.com/level1.gz">http://update.transmissionbt.com/level1.gz</a>. This script is to auto download</span><br />
<span style="color: blue;"># the latest or extra P2P blocklists to suppliment or replace the default.</span><br />
<span style="color: blue;"># All being well the script will download from the "$URLS" list and create a</span><br />
<span style="color: blue;"># file which "transmisson-gtk" can parse, the old list will then be replaced</span><br />
<span style="color: blue;"># ready for "transmission-gtk" to create a new binery file on startup.</span><br />
<span style="color: blue;"># If this doesn't happen for some reason the existing will be left in place.</span><br />
<span style="color: blue;"># Script can be used on it's own, or uncomment the last line and create a</span><br />
<span style="color: blue;"># custom launcher for the Transmission bittorent client.</span><br />
<br />
<span style="color: blue;"># Some reading <a href="http://torrentfreak.com/do-p2p-blocklists-keep-you-safe/">http://torrentfreak.com/do-p2p-blocklists-keep-you-safe/</a></span><br />
<span style="color: blue;"># Some suggested urls: </span><br />
<span style="color: blue;"># http://list.iblocklist.com/?list=bt_level1 # General default list.</span><br />
<span style="color: blue;"># http://list.iblocklist.com/?list=bt_level2 # Labs or researchers.</span><br />
<span style="color: blue;"># http://list.iblocklist.com/?list=bt_level3 # The paranoids list.</span><br />
<span style="color: blue;"># http://list.iblocklist.com/?list=bt_bogon # Unallocated addresses.</span><br />
<span style="color: blue;"># http://list.iblocklist.com/?list=bt_templist # Suspected bad peers.</span><br />
<span style="color: blue;"># http://list.iblocklist.com/?list=bt_spyware # Suspected spy/malware.</span><br />
<br />
<span style="color: blue;"># Add urls to this $URLS list.</span><br />
<span style="color: darkcyan;">URLS</span>=<span style="color: brown;"><b>"</b></span><br />
<span style="color: magenta;">http://list.iblocklist.com/?list=bt_level2</span><br />
<span style="color: magenta;">http://list.iblocklist.com/?list=bt_level3</span><br />
<span style="color: magenta;">http://list.iblocklist.com/?list=bt_bogon</span><br />
<span style="color: brown;"><b>"</b></span><br />
<span style="color: darkcyan;">TMP</span>=<span style="color: brown;"><b>"</b></span><span style="color: magenta;">/tmp/blocklists/</span><span style="color: brown;"><b>"</b></span> <span style="color: blue;"># Temporary workspace.</span><br />
<span style="color: darkcyan;">LISTS</span>=<span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$HOME</span><span style="color: magenta;">/.config/transmission/blocklists</span><span style="color: brown;"><b>"</b></span> <span style="color: blue;"># Blocklists location.</span><br />
<br />
<span style="color: brown;"><b>rm</b></span> <span style="color: slateblue;">-rf</span> <span style="color: #a020f0;">$TMP</span>; <span style="color: brown;"><b>mkdir</b></span> <span style="color: #a020f0;">$TMP</span>; <span style="color: brown;"><b>cd</b></span> <span style="color: #a020f0;">$TMP</span> <span style="color: blue;"># Clear the way.</span><br />
<b><span style="color: brown;">wget</span></b> <span style="color: slateblue;">--retry-connrefused</span> <span style="color: #a020f0;">$URLS</span> <span style="color: blue;"># Get lists.....persist.</span><br />
<span style="color: brown;"><b>if </b></span><span style="color: brown;"><b>[</b></span> <span style="color: brown;"><b>!</b></span> <span style="color: #a020f0;">$?</span> <span style="color: brown;"><b>=</b></span> <span style="color: magenta;">0</span> <span style="color: brown;"><b>]</b></span><span style="color: brown;"><b>;</b></span> <span style="color: brown;"><b>then</b></span> <span style="color: brown;"><b>exit</b></span> <span style="color: #a020f0;">$?</span><span style="color: brown;"><b>;</b></span> <span style="color: brown;"><b>fi</b></span><br />
<b><span style="color: brown;">cat</span></b> * <span style="color: brown;"><b>></b></span> extras.gz <span style="color: blue;"># Concatenate the lists.</span><br />
<b><span style="color: brown;">gunzip</span></b> <span style="color: slateblue;">-c</span> extras.gz <span style="color: brown;"><b>></b></span> extras<br />
<span style="color: brown;"><b>if </b></span><span style="color: brown;"><b>[</b></span> <span style="color: brown;"><b>!</b></span> <span style="color: #a020f0;">$?</span> <span style="color: brown;"><b>=</b></span> <span style="color: magenta;">0</span> <span style="color: brown;"><b>]</b></span><span style="color: brown;"><b>;</b></span> <span style="color: brown;"><b>then</b></span> <span style="color: brown;"><b>exit</b></span> <span style="color: #a020f0;">$?</span><span style="color: brown;"><b>;</b></span> <span style="color: brown;"><b>fi</b></span><br />
<span style="color: brown;"><b>if </b></span><span style="color: slateblue;">[[</span> <span style="color: brown;"><b>-s</b></span> <span style="color: brown;"><b>"</b></span><span style="color: magenta;">extras</span><span style="color: brown;"><b>"</b></span> <span style="color: slateblue;">]]</span><span style="color: brown;"><b>;</b></span> <span style="color: brown;"><b>then</b></span><br />
<span style="color: brown;"><b>sort</b></span> <span style="color: brown;"><b>-u</b></span> extras <span style="color: brown;"><b>-o</b></span> extras.txt <span style="color: blue;"># Sort unique to txt file.</span><br />
<span style="color: brown;"><b>else</b></span> <span style="color: brown;"><b>exit</b></span> <span style="color: #a020f0;">$?</span><br />
<span style="color: brown;"><b>fi</b></span><br />
<span style="color: brown;"><b>rm</b></span> <span style="color: slateblue;">-f</span> <span style="color: #a020f0;">$LISTS</span>/extras* <span style="color: blue;"># Purge old txt/bin files.</span><br />
<span style="color: brown;"><b>mv</b></span> <span style="color: slateblue;">-f</span> extras.txt <span style="color: #a020f0;">$LISTS</span>/<span style="color: brown;"><b>"</b></span><span style="color: magenta;">extras </span><span style="color: #a020f0;">$(</span><span style="color: slateblue;">date +%d-%b-%R</span><span style="color: #a020f0;">)</span><span style="color: magenta;">.txt</span><span style="color: brown;"><b>"</b></span><br />
<br />
<span style="color: blue;">#transmission-gtk & # Start bt client?</span></span><br />
<span style="font-family: monospace;"><span style="color: blue;"> </span><br />
</span>Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-58120170858082354682011-04-17T06:46:00.000-07:002011-04-23T08:16:46.488-07:00Make executable<span style="font-family: monospace;">
<span style="color: blue;">#!/bin/bash</span><br />
<span style="color: blue;"># Filename: Exbit-set</span><br />
<span style="color: blue;"># Version: 170411</span></span><br />
<span style="font-family: monospace;"><span style="color: blue;"># Author: robz</span></span><span style="font-family: monospace;"><br />
<span style="color: blue;"># Another right click nautilus-scripts script. This one sets the executable</span><br />
<span style="color: blue;"># bit, handling multiple files and filenames with spaces.</span><br />
<br />
<span style="color: brown;"><b>for </b></span><span style="background-color: white; color: #a020f0;">FILE</span><span style="color: brown;"><b>;</b></span> <span style="color: brown;"><b>do</b></span> <span style="color: brown;"><b>chmod</b></span> u+x <span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$FILE</span><span style="color: brown;"><b>";</b></span> <span style="color: brown;"><b>done</b></span><br />
<br />
<span style="color: blue;"># Brief but useful.</span></span><br />
<span style="font-family: monospace;"><br />
</span>Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0tag:blogger.com,1999:blog-762128904635102185.post-53618902061073604582011-04-16T05:45:00.000-07:002011-04-23T08:14:40.470-07:00Alias scan<span style="font-family: monospace;">
<span style="color: blue;">#!/bin/bash</span><br />
<span style="color: blue;"># Filename: scan.sh</span><br />
<span style="color: blue;"># Version: 230411</span><br />
<span style="color: blue;"># Author: robz</span><br />
<span style="color: blue;"># $HOME scanner with "ClamAV" run from a virtual terminal with a bash alias.</span><br />
<span style="color: blue;"># Check first if you've any other programs called scan, try "man scan" to see</span><br />
<span style="color: blue;"># if manual pages exist, If ok add the alias to the bottom of your ~/.bashrc</span><br />
<span style="color: blue;"># file, modify so it's path points to your scripts directory location.</span><br />
<span style="color: blue;"># "alias scan="/home/user/users_scripts/scan.sh"" save, do "source ~/.bashrc"</span><br />
<span style="color: blue;"># in a terminal to reload the bash configuration, type "scan" to scan.</span><br />
<span style="color: blue;"># Scanning is done recursively on the directory you are in, terminal wise,</span><br />
<span style="color: blue;"># ie. the $PWD - present working directory.</span><br />
<span style="color: blue;"># If this script is likely to be run logged in as another user you'll need to</span><br />
<span style="color: blue;"># be more specific with the path of the sound files.</span><br />
<br />
<span style="color: brown;"><b>export</b></span><span style="color: darkcyan;"> DISPLAY=</span>:<span style="color: magenta;">0</span> <span style="color: blue;"># Make sounds work.</span><br />
<span style="color: darkcyan;">LOGFILE</span>=<span style="color: brown;"><b>"</b></span><span style="color: magenta;">/tmp/ClamAV-</span><span style="color: #a020f0;">$(</span><span style="color: slateblue;">date +%A-%H:%M</span><span style="color: #a020f0;">)</span><span style="color: magenta;">.log</span><span style="color: brown;"><b>"</b></span> <span style="color: blue;"># Make new logfile.</span><br />
<span style="color: darkcyan;">SOUND1</span>=<span style="color: #a020f0;">$HOME</span>/Audio/DingLing.wav <span style="color: blue;"># OK sound.</span><br />
<span style="color: darkcyan;">SOUND2</span>=<span style="color: #a020f0;">$HOME</span>/Audio/HyprBlip.wav <span style="color: blue;"># Warning sound.</span><br />
<br />
<span style="color: brown;"><b>echo</b></span><span style="color: magenta;"> -e </span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">\n\033</span><span style="color: magenta;">[37;1mScanning directory:</span><span style="color: magenta;">\033</span><span style="color: magenta;">[0m </span><span style="color: #a020f0;">$(</span><span style="color: brown;"><b>pwd</b></span><span style="color: #a020f0;">)</span><span style="color: magenta;">\n</span><span style="color: brown;"><b>"</b></span><br />
<span style="color: brown;"><b>echo</b></span><span style="color: magenta;"> -e </span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">\033</span><span style="color: magenta;">[33;1mEnter password to update virus definitions</span><span style="color: magenta;">\033</span><span style="color: magenta;">[0m</span><span style="color: brown;"><b>"</b></span><br />
<br />
<b style="color: brown;">sudo</b> <span style="color: slateblue;">-k</span> freshclam <span style="color: blue;"># Update definitions.</span><br />
<span style="color: blue;"># Scan $PWD, do it nicely! exclude large pre-scanned or encrypted directories</span><br />
<span style="color: blue;"># and, as this runs as user, files not belonging to the user.</span><br />
<span style="color: brown;"><b>nice</b></span> <span style="color: slateblue;">-n</span> <span style="color: magenta;">19</span> /usr/bin/clamscan <span style="color: slateblue;">-r</span> <span style="color: #a020f0;">${</span><span style="color: #a020f0;">pwd</span><span style="color: #a020f0;">}</span> <span style="color: slateblue;">-l</span> <span style="color: #a020f0;">$LOGFILE</span><span style="color: brown;"><b>\</b></span><br />
<span style="color: slateblue;">--heuristic-scan-precedence\</span><br />
<span style="color: slateblue;">--exclude-dir=</span><span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$HOME</span><span style="color: magenta;">/Audio</span><span style="color: brown;"><b>"</b></span><span style="color: brown;"><b>\</b></span><br />
<span style="color: slateblue;">--exclude-dir=</span><span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$HOME</span><span style="color: magenta;">/Music</span><span style="color: brown;"><b>"</b></span><span style="color: brown;"><b>\</b></span><br />
<span style="color: slateblue;">--exclude-dir=</span><span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$HOME</span><span style="color: magenta;">/Pictures</span><span style="color: brown;"><b>"</b></span><span style="color: brown;"><b>\</b></span><br />
<span style="color: slateblue;">--exclude-dir=</span><span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$HOME</span><span style="color: magenta;">/.Private</span><span style="color: brown;"><b>"</b></span><span style="color: brown;"><b>\</b></span><br />
<span style="color: slateblue;">--exclude-dir=</span><span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$HOME</span><span style="color: magenta;">/Video</span><span style="color: brown;"><b>"</b></span><span style="color: brown;"><b>\</b></span><br />
<span style="color: slateblue;">--exclude-dir=</span><span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$HOME</span><span style="color: magenta;">/.ntop</span><span style="color: brown;"><b>"</b></span><span style="color: brown;"><b>\</b></span><br />
<span style="color: slateblue;">--exclude-dir=</span><span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$HOME</span><span style="color: magenta;">/.thumbnails</span><span style="color: brown;"><b>"</b></span><span style="color: brown;"><b>\</b></span><br />
<span style="color: slateblue;">--exclude=</span><span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$HOME</span><span style="color: magenta;">/.Synaptic-markings</span><span style="color: brown;"><b>"</b></span><span style="color: brown;"><b>\</b></span><br />
<span style="color: slateblue;">--exclude=</span><span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$HOME</span><span style="color: magenta;">/.selected_editor</span><span style="color: brown;"><b>"</b></span><br />
<span style="color: darkcyan;">CLAMSCAN</span>=<span style="color: #a020f0;">$?</span> <span style="color: blue;"># Get exit status.</span><br />
<br />
<span style="color: brown;"><b>if </b></span><span style="color: brown;"><b>[</b></span> <span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$CLAMSCAN</span><span style="color: brown;"><b>"</b></span> <span style="color: brown;"><b>-eq</b></span> <span style="color: brown;"><b>"</b></span><span style="color: magenta;">1</span><span style="color: brown;"><b>"</b></span> <span style="color: brown;"><b>]</b></span><span style="color: brown;"><b>;</b></span> <span style="color: brown;"><b>then</b></span><br />
<span style="color: brown;"><b>echo</b></span><span style="color: magenta;"> -e </span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">\033</span><span style="color: magenta;">[31;1m[VIRUS FOUND</span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">\!</span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">]</span><span style="color: magenta;">\033</span><span style="color: magenta;">[0m</span><span style="color: brown;"><b>"</b></span><br />
/usr/bin/canberra-gtk-play --<span style="color: darkcyan;">volume</span>=<span style="color: magenta;">4</span> <span style="color: brown;"><b>-f</b></span> <span style="color: #a020f0;">$SOUND2</span> <span style="color: brown;"><b>&</b></span><br />
<span style="color: brown;"><b>elif</b></span> <span style="color: brown;"><b>[</b></span> <span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$CLAMSCAN</span><span style="color: brown;"><b>"</b></span> <span style="color: brown;"><b>-gt</b></span> <span style="color: brown;"><b>"</b></span><span style="color: magenta;">1</span><span style="color: brown;"><b>"</b></span> <span style="color: brown;"><b>]</b></span><span style="color: brown;"><b>;</b></span> <span style="color: brown;"><b>then</b></span><br />
<span style="color: brown;"><b>echo</b></span><span style="color: magenta;"> -e </span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">Scan found errors...</span><span style="color: magenta;">\n</span><span style="color: brown;"><b>"</b></span><span style="color: #a020f0;">$(</span><span style="color: brown;"><b>grep</b></span><span style="color: slateblue;"> </span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">Access denied</span><span style="color: brown;"><b>"</b></span><span style="color: slateblue;"> </span><span style="color: #a020f0;">$LOGFILE</span><span style="color: #a020f0;">)</span><span style="color: magenta;"> </span><b><span style="color: brown;">|</span> <span style="color: brown;">more</span></b><br />
<span style="color: brown;"><b>echo</b></span><span style="color: magenta;"> -e </span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">\033</span><span style="color: magenta;">[34;1m[ERROR </span><span style="color: #a020f0;">$CLAMSCAN</span><span style="color: magenta;">]</span><span style="color: magenta;">\033</span><span style="color: magenta;">[0m</span><span style="color: brown;"><b>"</b></span><br />
/usr/bin/canberra-gtk-play --<span style="color: darkcyan;">volume</span>=<span style="color: magenta;">4</span> <span style="color: brown;"><b>-f</b></span> <span style="color: #a020f0;">$SOUND1</span> <span style="color: brown;"><b>&</b></span><br />
<span style="color: brown;"><b>else</b></span> <span style="color: brown;"><b>echo</b></span><span style="color: magenta;"> -e </span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">\033</span><span style="color: magenta;">[32;1mNo virus found :)</span><span style="color: magenta;">\033</span><span style="color: magenta;">[0m</span><span style="color: brown;"><b>"</b></span><br />
/usr/bin/canberra-gtk-play --<span style="color: darkcyan;">volume</span>=<span style="color: magenta;">4</span> <span style="color: brown;"><b>-f</b></span> <span style="color: #a020f0;">$SOUND1</span> <span style="color: brown;"><b>&</b></span><br />
<span style="color: brown;"><b>fi</b></span><br />
<br />
<span style="color: brown;"><b>echo</b></span><span style="color: magenta;"> -e </span><span style="color: brown;"><b>"</b></span><span style="color: magenta;">\033</span><span style="color: magenta;">[1mFor scan details see logfile at </span><span style="color: #a020f0;">$LOGFILE</span><span style="color: magenta;">.</span><span style="color: magenta;">\033</span><span style="color: magenta;">[0m</span><span style="color: magenta;">\n</span><span style="color: brown;"><b>"</b></span><br />
<br />
</span>Robhttp://www.blogger.com/profile/17546879321409464430noreply@blogger.com0