USBディスクへのバックアップ
(前提条件)
・ 事前にUSBディスクは、「/usr/local/Backup」にマウント済み
・ user01のホームディレクトリは、バックアップ対象外とする。
・ 2回目以降のバックアップは、新規ファイル・更新ファイルのみがバックアップされる。
・ バックアップ元のファイルが削除されてもバックアップ先のファイルは削除されない。
1 2 3 4 5 6 7 |
#!/bin/sh -x rsync -auv /etc /usr/local/Backup rsync -auv /var/lib/awstats /usr/local/Backup/var/lib rsync -auv /root /usr/local/Backup rsync -auv /home /usr/local/Backup/home --exclude 'user01' rsync -auv /usr/local/sbin /usr/local/Backup/usr/local |
Remineのバックアップ
(前提条件)
・ DB(mariaDB)へのアクセス設定(ユーザ名、パスワード、DB名)を変更する。
・ バックアップ先のディレクトリ(/root/Backup/Redmine)を事前に作成する。
・ DBとコンテンツをバックアップする。
・ EXP変数の日数が過ぎるたバックアップは削除する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#!/bin/sh YYYYMMDD=`date '+%Y%m%d'` EXP=365 DB_USER=redmine DB_PASS="パスワード" DB_NAME=redmine BACKUP_DIR=/root/Backup/Redmine mysqldump --user=${DB_USER} --password=${DB_PASS} ${DB_NAME} | gzip - > ${BACKUP_DIR}/${YYYYMMDD}_${DB_NAME}.sql.gz cd /usr/local tar zcf ${BACKUP_DIR}/${YYYYMMDD}_html.tgz ./redmine cd ${BACKUP_DIR} find . -type f -mtime +${EXP} -exec rm -f {} \; |
対話的スクリプト(expect)
(前提条件)
・ 事前にコマンドを実行しレスポンスを調査する。
・ パスワードは、シェルファイルが置かれているディレクトリ下の「.pw」に格納されている。
・ 例は、アライドテレシスのL3スイッチで、ARPテーブルの一覧を表示させる。
・ L3スイッチのホスト名は、「L3SW」としている。
・ enableのパスワードは設定されていない前提である。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#!/bin/sh HOST=L3SW USERID=manager BINDIR=`dirname $0` PASS=`cat $BINDIR/.pw` expect -c " set timeout 10 spawn telnet $HOST expect \"L3SW\ login:\ \" ; send \"$USERID\r\" expect \"Password:\ \" ; send \"$PASS\r\" expect \"L3SW>\" ; send \"en\r\" expect \"L3SW#\" ; send \"terminal length 0\r\" expect \"L3SW#\" ; send \"sh arp\r\" expect \"L3SW#\" ; send \"exit\r\" " echo "" |