Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
centos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
platyhouse
centos
Commits
0150a02b
Commit
0150a02b
authored
Nov 12, 2025
by
platyhouse
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
.
parent
6fa9c8f8
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
86 additions
and
13 deletions
+86
-13
ptyMysqlBackup.php
ptyMysqlBackup.php
+86
-13
No files found.
ptyMysqlBackup.php
View file @
0150a02b
#!/usr/bin/php
<?php
$password
=
$argv
[
3
]
??
null
;
$host
=
$argv
[
1
]
??
null
;
$user
=
$argv
[
2
]
??
null
;
$backupPath
=
$argv
[
4
]
??
null
;
// 인자 파싱 함수 (--key=value 형태만 허용)
function
parseArguments
(
$argv
)
{
$args
=
[];
for
(
$i
=
1
;
$i
<
count
(
$argv
);
$i
++
)
{
if
(
$argv
[
$i
]
===
'--help'
)
{
$args
[
'help'
]
=
true
;
}
elseif
(
preg_match
(
'/^--([a-zA-Z]+)=(.*)$/'
,
$argv
[
$i
],
$matches
))
{
$args
[
$matches
[
1
]]
=
$matches
[
2
];
}
else
{
echo
"[WARNING] Invalid argument format:
{
$argv
[
$i
]
}
\n
"
;
echo
" Use --key=value format (e.g., --host=localhost)
\n\n
"
;
}
}
return
$args
;
}
$args
=
parseArguments
(
$argv
);
// --help 옵션 체크
if
(
isset
(
$args
[
'help'
]))
{
echo
"pty_mysql_backup_all_each_db_each_table version 2.0
\n
"
;
echo
"Copyright (C) 2019 by cpueblo, PlatyHouse Co.,LTD.
\n
"
;
echo
"Web site: https://www.platyhouse.com/
\n\n
"
;
echo
"Usage: php ./ptyMysqlBackup.php [OPTIONS]
\n\n
"
;
echo
"Options:
\n
"
;
echo
" --host=<hostname> MySQL host (default: localhost)
\n
"
;
echo
" --username=<user> MySQL username (default: root)
\n
"
;
echo
" --password=<password> MySQL password (optional if ~/.mysql_password exists)
\n
"
;
echo
" --backupPath=<path> Backup directory path (default: /root/pty_server_backup/mysql)
\n
"
;
echo
" --help Show this help message
\n\n
"
;
echo
"Examples:
\n
"
;
echo
" php ./ptyMysqlBackup.php --host=localhost --username=root --password=mypass
\n
"
;
echo
" php ./ptyMysqlBackup.php --host=192.168.1.100 --username=admin
\n
"
;
echo
" php ./ptyMysqlBackup.php --host=remotehost --backupPath=/backup/mysql
\n\n
"
;
echo
"Note:
\n
"
;
echo
" - You can create ~/.mysql_password file with password (local or remote host)
\n
"
;
echo
" - If password is not provided, script will try to read from ~/.mysql_password
\n
"
;
echo
" - Each database backup will be compressed to .tgz format
\n
"
;
exit
(
0
);
}
$host
=
$args
[
'host'
]
??
null
;
$user
=
$args
[
'username'
]
??
null
;
$password
=
$args
[
'password'
]
??
null
;
$backupPath
=
$args
[
'backupPath'
]
??
null
;
if
(
!
$host
)
$host
=
"localhost"
;
if
(
!
$user
)
$user
=
"root"
;
...
...
@@ -38,17 +80,26 @@ if (!$password)
if
(
!
$password
)
{
echo
"pty_mysql_backup_all_each_db_each_table version 1.0
\n
"
;
echo
"[ERROR] Password is required!
\n\n
"
;
echo
"pty_mysql_backup_all_each_db_each_table version 2.0
\n
"
;
echo
"Copyright (C) 2019 by cpueblo, PlatyHouse Co.,LTD.
\n
"
;
echo
"Web site: https://www.platyhouse.com/
\n\n
"
;
echo
"Usage: php ./pty_mysql_backup_all_each_db_each_table.php <HOST> <USERNAME> <PASSWORD> [BACKUP_PATH]
\n
"
;
echo
" HOST : MySQL host (default: localhost)
\n
"
;
echo
" USERNAME : MySQL username (default: root)
\n
"
;
echo
" PASSWORD : MySQL password (optional if ~/.mysql_password exists)
\n
"
;
echo
" BACKUP_PATH : Backup directory path (default: /root/pty_server_backup/mysql)
\n\n
"
;
echo
"Or create ~/.mysql_password file with password
\n
"
;
echo
"Or create ~/.mysql_password file on the remote host
\n
"
;
exit
;
echo
"Usage: php ./ptyMysqlBackup.php [OPTIONS]
\n\n
"
;
echo
"Options:
\n
"
;
echo
" --host=<hostname> MySQL host (default: localhost)
\n
"
;
echo
" --username=<user> MySQL username (default: root)
\n
"
;
echo
" --password=<password> MySQL password (optional if ~/.mysql_password exists)
\n
"
;
echo
" --backupPath=<path> Backup directory path (default: /root/pty_server_backup/mysql)
\n
"
;
echo
" --help Show this help message
\n\n
"
;
echo
"Examples:
\n
"
;
echo
" php ./ptyMysqlBackup.php --host=localhost --username=root --password=mypass
\n
"
;
echo
" php ./ptyMysqlBackup.php --host=192.168.1.100 --username=admin
\n
"
;
echo
" php ./ptyMysqlBackup.php --host=remotehost --backupPath=/backup/mysql
\n\n
"
;
echo
"Note:
\n
"
;
echo
" - You can create ~/.mysql_password file with password (local or remote host)
\n
"
;
echo
" - If password is not provided, script will try to read from ~/.mysql_password
\n
"
;
echo
" - Each database backup will be compressed to .tgz format
\n
"
;
exit
(
1
);
}
...
...
@@ -113,6 +164,28 @@ while ($databaseInfo = mysqli_fetch_array($databases)) { // go through each row
echo
"Done
\n
"
;
$totalTables
++
;
}
// 데이터베이스 백업 완료 후 압축
echo
"[INFO] Compressing database backup...
\n
"
;
$dbDir
=
$backupPath
.
"/"
.
$dbName
;
$tarFile
=
$backupPath
.
"/"
.
$dbName
.
".tgz"
;
// tar 명령 실행 (백업 경로로 이동해서 실행)
$tarCmd
=
"cd
\"
$backupPath
\"
&& tar czf
\"
$dbName
.tgz
\"
\"
$dbName
\"
2>&1"
;
exec
(
$tarCmd
,
$tarOutput
,
$tarReturnCode
);
if
(
$tarReturnCode
===
0
)
{
echo
"[INFO] Compressed to:
$tarFile
\n
"
;
// 압축 성공 시 원본 디렉토리 삭제
echo
"[INFO] Removing original directory...
\n
"
;
$rmCmd
=
"rm -rf
\"
$dbDir
\"
"
;
exec
(
$rmCmd
);
echo
"[INFO] Original directory removed
\n
"
;
}
else
{
echo
"[ERROR] Failed to compress
$dbName
\n
"
;
echo
implode
(
"
\n
"
,
$tarOutput
)
.
"
\n
"
;
}
}
echo
"
\n
====================================
\n
"
;
...
...
platyhouse
@platyhouse
mentioned in commit
8587004b
·
Dec 16, 2025
mentioned in commit
8587004b
mentioned in commit 8587004bfbebb2ceff13804bc1eea04727f6a285
Toggle commit list
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment