Savannah health monitor

If we ever build a health "dashboard" website (e.g. https://status.sv.gnu.org), these are the suggested checks for each of SavannahServices.

TODO:

  • instead of using hard-coded user 'agn', create a dedicated user on Savannah and add ssh pubkeys to it.
  • create Perl script with www-mechanize to test login on the PHP frontend.
  • remove '0' suffix from server names below when migration is complete.

VCS0

Anonymous checkouts (protocol-specific xinetd daemon)

git clone git://git0.sv.gnu.org/datamash.git
svn co svn://svn0.sv.gnu.org/texinfo/trunk
bzr branch bzr://bzr0.savannah.nongnu.org/gnewsense/docs
cvs -d:pserver:anonymous@cvs0.savannah.nongnu.org:/sources/zdl co zdl
cvs -d:pserver:anonymous@cvs0.savannah.nongnu.org:/srv/cvs/sources/zdl co zdl
cvs -d:pserver:anonymous@cvs0.savannah.nongnu.org:/web/zdl co zdl
cvs -d:pserver:anonymous@cvs0.savannah.nongnu.org:/srv/cvs/web/zdl co zdl
cvs -d:pserver:anonymous@cvs0.savannah.nongnu.org:/webcvs/zdl co zdl

SSH Access (ssh should work with pubkey, but all commands except rsync/scp should be rejected):

$ ssh agn@vcs0.sv.gnu.org ls
You tried to execute: ls
Sorry, you are not allowed to execute that command.

VCS ssh access:

bzr branch bzr+ssh://agn@bzr0.savannah.nongnu.org/gnewsense/docs
git clone agn@git0.sv.gnu.org:/srv/git/grep.git
hg clone ssh://agn@hg0.sv.gnu.org/health
svn co svn+ssh://agn@svn0.sv.gnu.org/texinfo/trunk
# cvs, webcvs, with multiple root directories
cvs -d:ext:agn@cvs0.sv.gnu.org:/sources/zdl co zdl
cvs -d:ext:agn@cvs0.sv.gnu.org:/srv/cvs/sources/zdl co zdl
cvs -d:ext:agn@cvs0.sv.gnu.org:/web/zdl co zdl
cvs -d:ext:agn@cvs0.sv.gnu.org:/srv/cvs/web/zdl co zdl

Read-only anonymous rsync access:

rsync -avhP rsync://git0.sv.gnu.org/git/datamash.git .
rsync -avhP rsync://svn0.sv.gnu.org/svn/texinfo .
rsync -avhP rsync://bzr0.sv.gnu.org/bzr/gnewsense/docs .
rsync -avhP rsync://web.cvs0.sv.gnu.org/web/zdl .
rsync -avhP rsync://cvs0.sv.gnu.org/sources/zdl .

Web access, with curl (also check http):

https://git0.savannah.gnu.org/cgit/datamash.git
https://git0.savannah.gnu.org/gitweb/?p=datamash.git
https://git0.savannah.gnu.org/r/datamash.git/

https://svn0.savannah.gnu.org/viewvc/texinfo/
https://cvs0.savannah.gnu.org/viewvc/zdl/
https://web.cvs0.savannah.gnu.org/viewvc/zdl/

#special *checkout* mode, return raw file (as HTML)
http://web.cvs.savannah.gnu.org/viewvc/*checkout*/pretest/pretest/index.html?revision=1.29

#special *checkout* mode, return raw file (as text)
http://web.cvs.savannah.gnu.org/viewvc/*checkout*/pretest/pretest/index.html?revision=1.29&content-type=text%2Fplain

https://bzr0.savannah.gnu.org/lh/gnewsense/
https://bzr0.savannah.gnu.org/r/gnewsense/

https://hg0.savannah.gnu.org/hgweb/health/

download0

Downloads (directory listing):

http://download0.savannah.gnu.org/releases/datamash/src/
https://download0.savannah.gnu.org/releases/datamash/src/

Test redirection mechanism:

$ curl -s -I 'http://download0.savannah.gnu.org/releases/datamash/src/datamash-latest.tar.gz'
HTTP/1.1 302 Moved Temporarily
Server: nginx/1.4.6 (Trisquel GNU/Linux)
Date: Tue, 08 Nov 2016 15:16:54 GMT
Connection: keep-alive
Location: http://nongnu.askapache.com/datamash/src/datamash-latest.tar.gz

Test download area with no redirections:

http://download-mirror0.savannah.gnu.org/releases/datamash/
https://download-mirror0.savannah.gnu.org/releases/datamash/

$ curl -s -I 'http://download-mirror0.savannah.gnu.org/releases/datamash/src/datamash-latest.tar.gz'
HTTP/1.1 200 OK
Server: nginx/1.4.6 (Trisquel GNU/Linux)
Date: Tue, 08 Nov 2016 15:16:22 GMT
Content-Type: application/octet-stream
Content-Length: 1891946
Last-Modified: Tue, 01 Nov 2016 22:55:28 GMT
Connection: keep-alive
ETag: "58191d60-1cde6a"
Accept-Ranges: bytes

Mirror check (see where you are redirected):

$ curl https://download0.savannah.gnu.org/mirror-check/
GNU Savannah - mirror check
Detected Remote Address: 173.220.72.100
Detected Country: US (United States)
Suggested mirrors:
For download.sv.gnu.org:  http://gnu.mirrors.pair.com/savannah/savannah/
For ftp.gnu.org: http://gnu.mirrors.hoobly.com/gnu/
(reload the page to see other mirrors for your country)

ftpmirror redirection:

# The official redirection (without `/gnu/`):
$ curl -s -I https://ftpmirror0.sv.gnu.org/coreutils/coreutils-8.25.tar.gz | grep '^Location:'
Location: http://mirrors.kernel.org/gnu/coreutils/coreutils-8.25.tar.gz

# undocumented hack (with `/gnu/` to make it more similar to `ftp.gnu.org/gnu`):
$ curl -s -I https://ftpmirror0.sv.gnu.org/gnu/coreutils/coreutils-8.25.tar.gz | grep '^Location:'
Location: http://mirror.clarkson.edu/gnu/coreutils/coreutils-8.25.tar.gz

GNU Arch repositories (directory listing only):

https://arch0.savannah.gnu.org/archives/

Read-only anonymous rsync:

rsync -avhP rsync://download0.sv.gnu.org/releases/datamash .
rsync -avhP rsync://download0.sv.gnu.org/audio-video/index.html .

SSH Access (ssh should work with pubkey, but all commands except rsync/scp should be rejected):

$ ssh agn@download0.sv.gnu.org ls
You tried to execute: ls
Sorry, you are not allowed to execute that command.

SCP/Rsync uploads:

rsync -avhP agn@download0.sv.gnu.org:/srv/download/datamash .
rsync -avhP agn@download0.sv.gnu.org:/srv/audio-video/ghm2009/ .