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
6fa9c8f8
Commit
6fa9c8f8
authored
Nov 12, 2025
by
platyhouse
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
.
parent
db45717f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
212 additions
and
11 deletions
+212
-11
ptyMysqlBackup.php
ptyMysqlBackup.php
+150
-0
ptyPythonSetVEnv
ptyPythonSetVEnv
+0
-0
ptySystemInfo
ptySystemInfo
+62
-11
No files found.
ptyMysqlBackup.php
0 → 100755
View file @
6fa9c8f8
#!/usr/bin/php
<?php
$password
=
$argv
[
3
]
??
null
;
$host
=
$argv
[
1
]
??
null
;
$user
=
$argv
[
2
]
??
null
;
$backupPath
=
$argv
[
4
]
??
null
;
if
(
!
$host
)
$host
=
"localhost"
;
if
(
!
$user
)
$user
=
"root"
;
if
(
!
$backupPath
)
$backupPath
=
"/root/pty_server_backup/mysql"
;
// 패스워드가 없으면 ~/.mysql_password 파일에서 읽기 시도
if
(
!
$password
)
{
// 먼저 로컬 ~/.mysql_password 체크
echo
"[INFO] Checking local ~/.mysql_password file...
\n
"
;
$passwordFile
=
getenv
(
"HOME"
)
.
"/.mysql_password"
;
if
(
file_exists
(
$passwordFile
))
{
$password
=
trim
(
file_get_contents
(
$passwordFile
));
echo
"[INFO] Password loaded from local ~/.mysql_password
\n
"
;
}
else
{
echo
"[INFO] Local ~/.mysql_password not found
\n
"
;
}
// 로컬에 없고 호스트가 localhost가 아니면 SSH로 원격 호스트에서 가져오기
if
(
!
$password
&&
$host
!=
"localhost"
&&
$host
!=
"127.0.0.1"
)
{
echo
"[INFO] Trying to get password from remote host (
$host
)...
\n
"
;
$sshCmd
=
"ssh root@
$host
'cat ~/.mysql_password' 2>/dev/null"
;
$remotePassword
=
trim
(
shell_exec
(
$sshCmd
));
if
(
$remotePassword
)
{
$password
=
$remotePassword
;
echo
"[INFO] Password loaded from remote host =
$password
\n
"
;
}
else
{
echo
"[INFO] Remote ~/.mysql_password not found
\n
"
;
}
}
}
if
(
!
$password
)
{
echo
"pty_mysql_backup_all_each_db_each_table version 1.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
;
}
// 백업 디렉토리 생성
if
(
!
is_dir
(
$backupPath
))
{
echo
"[INFO] Creating backup directory:
$backupPath
\n
"
;
if
(
!
mkdir
(
$backupPath
,
0755
,
true
))
{
die
(
"[ERROR] Failed to create backup directory:
$backupPath
\n
"
);
}
}
echo
"
\n
[INFO] Backup path:
$backupPath
\n
"
;
echo
"[INFO] Connecting to MySQL server:
$host
as
$user
, password =
$password
\n
"
;
$connection
=
mysqli_connect
(
$host
,
$user
,
$password
);
if
(
!
$connection
)
{
die
(
'[ERROR] Could not connect database.'
.
mysqli_error
()
.
"
\n
"
);
}
echo
"[INFO] Connected successfully!
\n\n
"
;
echo
"[INFO] Retrieving database list...
\n
"
;
$databases
=
mysqli_query
(
$connection
,
"SHOW databases"
);
$dbCount
=
0
;
$totalTables
=
0
;
while
(
$databaseInfo
=
mysqli_fetch_array
(
$databases
))
{
// go through each row that was returned in $result
$dbName
=
$databaseInfo
[
0
];
# performance_schema, information_schema 는 백업 무시
if
(
$dbName
==
"performance_schema"
||
$dbName
==
"information_schema"
)
{
echo
"[SKIP] Skipping system database:
$dbName
\n
"
;
continue
;
}
$dbCount
++
;
echo
"
\n
====================================
\n
"
;
echo
"[DB
$dbCount
] Processing database:
$dbName
\n
"
;
echo
"====================================
\n
"
;
$sql
=
"SHOW TABLES FROM `
$dbName
`"
;
$result
=
mysqli_query
(
$connection
,
$sql
);
if
(
!
$result
)
{
echo
"[ERROR] DB Error, could not list tables
\n
"
;
echo
'[ERROR] MySQL Error: '
.
mysqli_error
(
$connection
)
.
"
\n
"
;
exit
;
}
$tableCount
=
0
;
$tables
=
[];
while
(
$row
=
mysqli_fetch_row
(
$result
))
{
$tables
[]
=
$row
[
0
];
}
$totalTablesInDb
=
count
(
$tables
);
echo
"[INFO] Found
$totalTablesInDb
tables in
$dbName
\n
"
;
foreach
(
$tables
as
$tableName
)
{
$tableCount
++
;
echo
"[TABLE
$tableCount
/
$totalTablesInDb
] Backing up:
$dbName
.
$tableName
... "
;
mysql_backup
(
$host
,
$user
,
$password
,
$dbName
,
$tableName
,
$backupPath
);
echo
"Done
\n
"
;
$totalTables
++
;
}
}
echo
"
\n
====================================
\n
"
;
echo
"[COMPLETE] Backup finished!
\n
"
;
echo
"[STATS] Backup path:
$backupPath
\n
"
;
echo
"[STATS] Total databases:
$dbCount
\n
"
;
echo
"[STATS] Total tables:
$totalTables
\n
"
;
echo
"====================================
\n
"
;
function
mysql_backup
(
$host
,
$user
,
$password
,
$dbName
,
$tableName
,
$backupPath
)
{
if
(
strpos
(
$dbName
,
"x_"
)
===
0
)
{
echo
"(skipped: x_ prefix) "
;
return
;
}
// 데이터베이스별 디렉토리 생성
$dbDir
=
$backupPath
.
"/"
.
$dbName
;
if
(
!
is_dir
(
$dbDir
))
{
@
mkdir
(
$dbDir
,
0755
,
true
);
}
$outputFile
=
$dbDir
.
"/"
.
$tableName
.
".sql"
;
$cmd
=
"mysqldump -u
$user
-p
$password
-h
$host
$dbName
$tableName
--default-character-set=utf8mb4 --routines --events --add-drop-table --add-drop-database --complete-insert --extended-insert=TRUE --single-transaction --ssl-mode=DISABLED >
\"
$outputFile
\"
2>&1"
;
// 명령 실행 (출력 억제)
exec
(
$cmd
,
$output
,
$returnCode
);
if
(
$returnCode
!==
0
)
{
echo
"
\n
[ERROR] Failed to backup
$dbName
.
$tableName
\n
"
;
echo
implode
(
"
\n
"
,
$output
)
.
"
\n
"
;
}
}
?>
pty
SetPython
VEnv
→
pty
PythonSet
VEnv
View file @
6fa9c8f8
File moved
ptySystemInfo
View file @
6fa9c8f8
...
...
@@ -12,11 +12,19 @@ WHITE='\033[1;37m'
HEADER
=
'\033[44m\033[1;93m'
NC
=
'\033[0m'
# No Color
echo
-e
"
${
HEADER
}
# 시스템 정보 수집
${
NC
}
"
# OS 감지
OS_TYPE
=
$(
uname
-s
)
echo
-e
"
${
HEADER
}
# 시스템 정보 수집 (OS:
$OS_TYPE
)
${
NC
}
"
echo
""
echo
-e
"
${
HEADER
}
# OS 정보
${
NC
}
"
cat
/etc/os-release
if
[[
"
$OS_TYPE
"
==
"Darwin"
]]
;
then
sw_vers
echo
"Architecture:
$(
uname
-m
)
"
else
cat
/etc/os-release
fi
echo
""
echo
-e
"
${
HEADER
}
# 커널 버전
${
NC
}
"
...
...
@@ -32,11 +40,26 @@ uptime
echo
""
echo
-e
"
${
HEADER
}
# CPU 정보
${
NC
}
"
lscpu |
grep
-E
'Model name|Socket|Core|Thread|CPU MHz'
if
[[
"
$OS_TYPE
"
==
"Darwin"
]]
;
then
echo
"Model:
$(
sysctl
-n
machdep.cpu.brand_string
)
"
echo
"Physical CPUs:
$(
sysctl
-n
hw.physicalcpu
)
"
echo
"Logical CPUs:
$(
sysctl
-n
hw.logicalcpu
)
"
echo
"CPU Frequency:
$(
sysctl
-n
hw.cpufrequency
)
Hz"
else
lscpu |
grep
-E
'Model name|Socket|Core|Thread|CPU MHz'
fi
echo
""
echo
-e
"
${
HEADER
}
# 메모리 정보
${
NC
}
"
free
-h
if
[[
"
$OS_TYPE
"
==
"Darwin"
]]
;
then
total_mem
=
$(
sysctl
-n
hw.memsize
)
total_gb
=
$(
echo
"scale=2;
$total_mem
/ 1024 / 1024 / 1024"
| bc
)
echo
"Total Memory:
${
total_gb
}
GB"
echo
""
vm_stat | perl
-ne
'/page size of (\d+)/ and $size=$1; /Pages\s+([^:]+)[^\d]+(\d+)/ and printf("%-16s % 16.2f MB\n", "$1:", $2 * $size / 1048576);'
else
free
-h
fi
echo
""
echo
-e
"
${
HEADER
}
# 디스크 사용량
${
NC
}
"
...
...
@@ -44,23 +67,43 @@ df -h
echo
""
echo
-e
"
${
HEADER
}
# 디스크 목록
${
NC
}
"
lsblk
if
[[
"
$OS_TYPE
"
==
"Darwin"
]]
;
then
diskutil list
else
lsblk
fi
echo
""
echo
-e
"
${
HEADER
}
# 네트워크 인터페이스
${
NC
}
"
ip
-br
addr
if
[[
"
$OS_TYPE
"
==
"Darwin"
]]
;
then
ifconfig |
grep
-E
'^[a-z]|inet '
else
ip
-br
addr
fi
echo
""
echo
-e
"
${
HEADER
}
# 라우팅 테이블
${
NC
}
"
ip route
if
[[
"
$OS_TYPE
"
==
"Darwin"
]]
;
then
netstat
-rn
else
ip route
fi
echo
""
echo
-e
"
${
HEADER
}
# DNS 설정
${
NC
}
"
cat
/etc/resolv.conf
if
[[
"
$OS_TYPE
"
==
"Darwin"
]]
;
then
scutil
--dns
|
grep
'nameserver\[[0-9]*\]'
else
cat
/etc/resolv.conf
fi
echo
""
echo
-e
"
${
HEADER
}
# 열린 포트
${
NC
}
"
ss
-tulpn
2>/dev/null
||
netstat
-tulpn
if
[[
"
$OS_TYPE
"
==
"Darwin"
]]
;
then
netstat
-an
|
grep
LISTEN
else
ss
-tulpn
2>/dev/null
||
netstat
-tulpn
fi
echo
""
echo
-e
"
${
HEADER
}
# 로그인 사용자
${
NC
}
"
...
...
@@ -68,11 +111,19 @@ who
echo
""
echo
-e
"
${
HEADER
}
# 실행 중인 프로세스 TOP 10 (CPU)
${
NC
}
"
ps aux
--sort
=
-%cpu |
head
-11
if
[[
"
$OS_TYPE
"
==
"Darwin"
]]
;
then
ps aux |
sort
-nrk
3 |
head
-11
else
ps aux
--sort
=
-%cpu |
head
-11
fi
echo
""
echo
-e
"
${
HEADER
}
# 실행 중인 프로세스 TOP 10 (메모리)
${
NC
}
"
ps aux
--sort
=
-%mem |
head
-11
if
[[
"
$OS_TYPE
"
==
"Darwin"
]]
;
then
ps aux |
sort
-nrk
4 |
head
-11
else
ps aux
--sort
=
-%mem |
head
-11
fi
echo
""
echo
-e
"
${
HEADER
}
# 정보 수집 완료
${
NC
}
"
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