Created
June 25, 2012 17:04
-
-
Save sgk/2989904 to your computer and use it in GitHub Desktop.
Simple backup script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
export PATH=/usr/sbin:/sbin:$PATH | |
export TZ=Asia/Tokyo | |
export LANG=en | |
SERVERHOST=mybackupserver.example.com | |
SERVERLOGIN=mybackup | |
SERVER="$SERVERLOGIN@$SERVERHOST" | |
WEEKDAY=$(date +%a) | |
/bin/date | |
nice rsync -avxH --bwlimit=10000 --rsh=/usr/bin/ssh --stats --inplace --delete --exclude=backup / "$SERVER:$WEEKDAY" | |
/usr/bin/ssh "$SERVER" df | |
/bin/date |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# rsyncによる簡易バックアップスクリプト(サーバ側) | |
# by Shigeru KANEMOTO | |
# Public Domain | |
# | |
# /etc/passwd | |
# backup:x:0:0:Backup Superuser:/root/backup:/root/backup/shell | |
# | |
# authorized_keysファイルでは、以下のように指定する。 | |
# commandオプションに、バックアップ元の名称を指定する。この名前でディレクトリが作成される。 | |
# command="sgk-HD160G",no-pty,no-port-forwarding ssh-rsa AAAAB3Nz... | |
# | |
# その他、sshd_configにはセキュリティ関係の設定が必要。 | |
# PAMをやめるとか。 | |
# | |
# Config | |
RSYNC_CMD="/usr/bin/rsync" | |
DF_CMD="/bin/df" | |
BACKUP_TOPDIR="/backup" # バックアップ保存領域のトップ。この下にバックアップ元毎にディレクトリが作成される。 | |
# Startup | |
me="$0@`hostname`" | |
# Check | |
if [ "$#" != 2 -o "$1" != "-c" ]; then | |
echo "$me: set 'command=\"source-label\"' in the 'authorized_keys' file." | |
exit 1 | |
fi | |
src="$2" | |
target="$BACKUP_TOPDIR/$src" | |
if [ ! -d "$target" ]; then | |
echo "$me: Directory '$target' does not exist." | |
exit 2 | |
fi | |
if [ -z "$SSH_ORIGINAL_COMMAND" ]; then | |
echo "$me: set 'command=\"source label\"' in the 'authorized_keys' file." | |
exit 3 | |
fi | |
set $SSH_ORIGINAL_COMMAND | |
# Main | |
case "$1" in | |
rsync) | |
if [ "$2" = "--server" ]; then | |
shift | |
# オプションだけをコピーする。 | |
while [ "$#" -gt 0 ]; do | |
if expr -- "$1" : '[^-]' > /dev/null; then | |
break | |
fi | |
av=(${av[*]} "$1") | |
shift | |
done | |
shift | |
dir=$(echo "$1" | sed -e 's,\.\.,,g') | |
nice "$RSYNC_CMD" ${av[*]} . "$target/$dir" | |
touch "$target/$dir" | |
fi | |
;; | |
df) | |
"$DF_CMD" "$target" | |
;; | |
*) | |
echo "$me: $1: command not found" | |
exit 4 | |
;; | |
esac |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Package generated configuration file | |
# See the sshd(8) manpage for details | |
# What ports, IPs and protocols we listen for | |
Port 22 | |
# Use these options to restrict which interfaces/protocols sshd will bind to | |
#ListenAddress :: | |
#ListenAddress 0.0.0.0 | |
Protocol 2 | |
# HostKeys for protocol version 2 | |
HostKey /etc/ssh/ssh_host_rsa_key | |
HostKey /etc/ssh/ssh_host_dsa_key | |
#Privilege Separation is turned on for security | |
UsePrivilegeSeparation yes | |
# Lifetime and size of ephemeral version 1 server key | |
KeyRegenerationInterval 3600 | |
ServerKeyBits 768 | |
# Logging | |
SyslogFacility AUTH | |
LogLevel INFO | |
# Authentication: | |
LoginGraceTime 120 | |
PermitRootLogin without-password # rootはパスワードログインはできない。 | |
StrictModes yes | |
RSAAuthentication yes | |
PubkeyAuthentication yes | |
#AuthorizedKeysFile %h/.ssh/authorized_keys | |
AuthorizedKeysFile /etc/ssh/keys/%u # お勧め設定。バックアップ関係無しにお勧めです。 | |
# Don't read the user's ~/.rhosts and ~/.shosts files | |
IgnoreRhosts yes | |
# For this to work you will also need host keys in /etc/ssh_known_hosts | |
RhostsRSAAuthentication no | |
# similar for protocol version 2 | |
HostbasedAuthentication no | |
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication | |
#IgnoreUserKnownHosts yes | |
# To enable empty passwords, change to yes (NOT RECOMMENDED) | |
PermitEmptyPasswords no | |
# Change to yes to enable challenge-response passwords (beware issues with | |
# some PAM modules and threads) | |
ChallengeResponseAuthentication no # PAM関係。 | |
# Change to no to disable tunnelled clear text passwords | |
PasswordAuthentication no # パスワード認証は許可しない。 | |
X11Forwarding no | |
X11DisplayOffset 10 | |
PrintMotd no | |
PrintLastLog yes | |
TCPKeepAlive yes | |
#UseLogin no | |
#MaxStartups 10:30:60 | |
#Banner /etc/issue.net | |
# Allow client to pass locale environment variables | |
AcceptEnv LANG LC_* | |
Subsystem sftp /usr/lib/openssh/sftp-server | |
UsePAM no # yesだとパスワード認証できてしまう。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment