TeraTermマクロで、CentOS7に自動的にSSH接続してCMSのファイルとMySQLのデータをバックアップする


# 前提

## クライアント環境

OS：Windows 8.1
TeraTerm：4.82
※OSやTeraTermは多少古いバージョンでも動くと思います


## サーバ環境

OS：CentOS7.1
※RHEL系であれば、多少古くても動くと思います

内部IP:192.168.1.15
Linuxのユーザ名：root
Linuxのパスワード：password
SSHの認証：パスワードベース認証

MySQLのユーザ：root
MySQLのパスワード：password
MySQLのDB名：cms

バックアップ対象のPublic(公開) WWWのパス：/var/www/html/cms
バックアップ対象のSecure(非公開) Docsのパス：/var/www/secure_docs

バックアップ先の場所（Files）：/home/user/backup/files/
バックアップ先の場所（MySQL）：/home/user/backup/sql/


# マクロ

```bash:
TARGET_HOST				= "192.168.1.15" 			;
USERNAME				= "root"				;
PASSWORD				= "password"			;
TARGET_KEYWORD			= "cms"		;

ROOT						= "/var/www/"						;
HTML_PATH					= "html/"							;
SECURE_PATH					= "secure_docs"					;

ARCHIVE_EXTENSION			= ".tbz"							;
SQL_EXTENSION				= ".sql"							;

BACKUP_ARCHIVE_DIRECOTRY	= "/home/user/backup/files/"	;
BACKUP_SQL_DIRECOTRY		= "/home/user/backup/sql/"		;


connectCom				= "" ;

cdTargetHtmlDirCom		= "cd " ;
tarArcHtmlCom			= "tar cvfj " ;
mvArcHtmlCom			= "mv " ;

cdTargetSecureDirCom		= "cd " ;
tarArcTrustCom			= "tar cvfj " ;
mvArcTrustCom			= "mv " ;

tarArcSecureCom			= "tar cvfj " ;
mvArcSecureCom			= "mv " ;

cdSqlBakCom			= "cd " ;
dumpSqlCom			= "mysqldump -u root -p" ;

timeStamp			= "_" ;


tmpNowDate			= "" ;
tmpNowTime			= "" ;
tmpNowYear			= "" ;
tmpNowMonth			= "" ;
tmpNowDay			= "" ;
tmpNowHour			= "" ;
tmpNowMinute		= "" ;


getdate tmpNowDate		;
gettime tmpNowTime		;

strcopy tmpNowDate 3 2 nowYear		;
strcopy tmpNowDate 6 2 nowMonth	;
strcopy tmpNowDate 9 2 nowDay		;
strcopy tmpNowTime 1 2 nowHour		;
strcopy tmpNowTime 4 2 nowMinute	;

;
strconcat timeStamp nowYear		;
strconcat timeStamp nowMonth	;
strconcat timeStamp nowDay		;
strconcat timeStamp "-"			;
strconcat timeStamp nowHour		;
strconcat timeStamp nowMinute	;


strconcat connectCom TARGET_HOST ;
strconcat connectCom " /ssh /2 /auth=password /user=" ;
strconcat connectCom USERNAME ;
strconcat connectCom " /passwd=" ;
strconcat connectCom PASSWORD ;


strconcat cdTargetHtmlDirCom ROOT				;
strconcat cdTargetHtmlDirCom HTML_PATH			;

strconcat tarArcHtmlCom TARGET_KEYWORD			;
strconcat tarArcHtmlCom timeStamp				;
strconcat tarArcHtmlCom ARCHIVE_EXTENSION		;
strconcat tarArcHtmlCom " "						;
strconcat tarArcHtmlCom TARGET_KEYWORD			;

strconcat mvArcHtmlCom TARGET_KEYWORD			;
strconcat mvArcHtmlCom timeStamp				;
strconcat mvArcHtmlCom ARCHIVE_EXTENSION		;
strconcat mvArcHtmlCom " "						;
strconcat mvArcHtmlCom BACKUP_ARCHIVE_DIRECOTRY	;


strconcat cdTargetSecureDirCom ROOT		;

strconcat tarArcSecureCom SECURE_PATH		;
strconcat tarArcSecureCom timeStamp			;
strconcat tarArcSecureCom ARCHIVE_EXTENSION	;
strconcat tarArcSecureCom " "				;
strconcat tarArcSecureCom SECURE_PATH		;

strconcat mvArcSecureCom SECURE_PATH				;
strconcat mvArcSecureCom timeStamp					;
strconcat mvArcSecureCom ARCHIVE_EXTENSION			;
strconcat mvArcSecureCom " "						;
strconcat mvArcSecureCom BACKUP_ARCHIVE_DIRECOTRY	;


strconcat cdSqlBakCom BACKUP_SQL_DIRECOTRY	;

strconcat dumpSqlCom PASSWORD			;
strconcat dumpSqlCom " -h "				;
strconcat dumpSqlCom TARGET_HOST		;
strconcat dumpSqlCom " "				;
strconcat dumpSqlCom TARGET_KEYWORD		;
strconcat dumpSqlCom " > ./"			;
strconcat dumpSqlCom TARGET_KEYWORD		;
strconcat dumpSqlCom timeStamp			;
strconcat dumpSqlCom SQL_EXTENSION		;


connect connectCom

; ログイン
wait '~]#'

;messagebox cdTargetHtmlDirCom "Test Mesasge"
sendln cdTargetHtmlDirCom
wait ']#'

;messagebox tarArcHtmlCom "Test Mesasge"
sendln tarArcHtmlCom
wait ']#'

;messagebox mvArcHtmlCom "Test Mesasge"
sendln mvArcHtmlCom
wait ']#'


;messagebox cdTargetSecureDirCom "Test Mesasge"
sendln cdTargetSecureDirCom
wait ']#'

;messagebox tarArcSecureCom "Test Mesasge"
sendln tarArcSecureCom
wait ']#'

;messagebox mvArcSecureCom "Test Mesasge"
sendln mvArcSecureCom
wait ']#'


;messagebox cdSqlBakCom "Test Mesasge"
sendln cdSqlBakCom
wait ']#'

;messagebox dumpSqlCom "Test Mesasge"
sendln dumpSqlCom
wait ']#'
```

## 結果

マクロを実行した年月日-時分のバックアップファイルが生成されます

### 例
2015年11月29日 20時19分にマクロを実行した場合、
/home/user/backup/files/public_cms_151129-2019.tbz
/home/user/backup/files/secure_docs_151129-2019.tbz
/home/user/backup/sql/cms_151129-2019.sql
という3つのバックアップファイルが出力されます。