76 lines
2.6 KiB
HTML
76 lines
2.6 KiB
HTML
|
<!DOCTYPE html>
|
||
|
<html>
|
||
|
<head>
|
||
|
<meta charset="utf-8">
|
||
|
<meta name="generator" content="pandoc">
|
||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||
|
<title></title>
|
||
|
<style type="text/css">code{white-space: pre;}</style>
|
||
|
<!--[if lt IE 9]>
|
||
|
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||
|
<![endif]-->
|
||
|
<link rel="stylesheet" href="github-markdown.css">
|
||
|
</head>
|
||
|
<body>
|
||
|
<p>Example bash script:</p>
|
||
|
<pre><code>#!/bin/bash
|
||
|
#Description: Copy a Shaarli installation over SSH/SCP, serve it locally with php-cli
|
||
|
#Will create a local-shaarli/ directory when you run it, backup your Shaarli there, and serve it locally.
|
||
|
#Will NOT download linked pages. It's just a directly usable backup/copy/mirror of your Shaarli
|
||
|
#Requires: ssh, scp and a working SSH access to the server where your Shaarli is installed
|
||
|
#Usage: ./local-shaarli.sh
|
||
|
#Author: nodiscc (nodiscc@gmail.com)
|
||
|
#License: MIT (http://opensource.org/licenses/MIT)
|
||
|
set -o errexit
|
||
|
set -o nounset
|
||
|
|
||
|
##### CONFIG #################
|
||
|
#The port used by php's local server
|
||
|
php_local_port=7431
|
||
|
|
||
|
#Name of the SSH server and path where Shaarli is installed
|
||
|
#TODO: pass these as command-line arguments
|
||
|
remotehost="my.ssh.server"
|
||
|
remote_shaarli_dir="/var/www/shaarli"
|
||
|
|
||
|
|
||
|
###### FUNCTIONS #############
|
||
|
_main() {
|
||
|
_CBSyncShaarli
|
||
|
_CBServeShaarli
|
||
|
}
|
||
|
|
||
|
_CBSyncShaarli() {
|
||
|
remote_temp_dir=$(ssh $remotehost mktemp -d)
|
||
|
remote_ssh_user=$(ssh $remotehost whoami)
|
||
|
ssh -t "$remotehost" sudo cp -r "$remote_shaarli_dir" "$remote_temp_dir"
|
||
|
ssh -t "$remotehost" sudo chown -R "$remote_ssh_user":"$remote_ssh_user" "$remote_temp_dir"
|
||
|
scp -rq "$remotehost":"$remote_temp_dir" local-shaarli
|
||
|
ssh "$remotehost" rm -r "$remote_temp_dir"
|
||
|
}
|
||
|
|
||
|
_CBServeShaarli() {
|
||
|
#TODO: allow serving a previously downloaded Shaarli
|
||
|
#TODO: ask before overwriting local copy, if it exists
|
||
|
cd local-shaarli/
|
||
|
php -S localhost:${php_local_port}
|
||
|
echo "Please go to http://localhost:${php_local_port}"
|
||
|
}
|
||
|
|
||
|
|
||
|
##### MAIN #################
|
||
|
|
||
|
_main</code></pre>
|
||
|
<p>This outputs:</p>
|
||
|
<pre><code>$ ./local-shaarli.sh
|
||
|
PHP 5.6.0RC4 Development Server started at Mon Sep 1 21:56:19 2014
|
||
|
Listening on http://localhost:7431
|
||
|
Document root is /home/user/local-shaarli/shaarli
|
||
|
Press Ctrl-C to quit.
|
||
|
|
||
|
[Mon Sep 1 21:56:27 2014] ::1:57868 [200]: /
|
||
|
[Mon Sep 1 21:56:27 2014] ::1:57869 [200]: /index.html
|
||
|
[Mon Sep 1 21:56:37 2014] ::1:57881 [200]: /...</code></pre>
|
||
|
</body>
|
||
|
</html>
|