當你Solaris OS發生問題要怎麼辦
首先,你必須將系統的狀況回報給維護廠商
1. 執行 Explorer 程式:
# cd /opt/SUNWexplo/bin
# ./explorer
如果要針對Storage問題,執行指令如下
# ./explorer -w default,storage,fru
當程式執行完畢你會看到
explorer: Explorer finished 的訊息
2. 當程式執行完後,
# cd /opt/SUNWexplo/output
# ls
explorer.XX-2007.12.16.07.43.XXXX
explorer.XXXXXXXXX-2007.12.16.07.43.tar.gz
把 explorer*.tar.gz 寄出給維護廠商
Monday, December 17, 2007
Wednesday, December 05, 2007
Sybase's Login
Sometimes, we would like to know where a sybase's user come from? (e.g. IP)
1.) Find out the login's suid by using sp_displaylogin
1> sp_displaylogin person1
2> go
Suid: 2608
Loginame: person1
Fullname:
Default Database: mydb
Default Language:
Auto Login Script:
Configured Authorization:
Locked: NO
Date of Last Password Change: Nov 27 2007 11:03AM
Password expiration interval: 0
Password expired: NO
Minimum password length: 6
Maximum failed logins: 0
Current failed login attempts:
(return status = 0)
2.)Then select from sysprocesses by using the "suid"
1> select * from sysprocesses where suid=2608
2> go
spid kpid enginenum status suid hostname
program_name hostprocess cmd cpu physical_io
memusage blocked dbid uid gid
tran_name
time_blocked network_pktsz fid execlass
priority affinity id stmtnum
linenum origsuid block_xloid clientname
clienthostname clientapplname sys_id
ses_id loggedindatetime ipaddr
------ ----------- ----------- ------------ ----------- ----------
---------------- ----------- ---------------- ----------- -----------
----------- ------- ------ ----------- -----------
----------------------------------------------------------------
------------ ------------- ------ ------------------------------
---------- ------------------------------ ----------- -----------
----------- ----------- ----------- ------------------------------
------------------------------ ------------------------------ ------
----------- -------------------------- ---------------
53 163185511 0 recv sleep 2608 ssksdev1
AWAITING COMMAND 0 0
2 0 4 2609 0
NULL
NULL 512 0 EC2
MEDIUM ANYENGINE 0 1
1 NULL 0
0
0 Dec 5 2007 3:56PM 10.47.1.215
(1 rows affected)
3.) Now we know person1 is connected by using 10.47.1.215 machine =)
1.) Find out the login's suid by using sp_displaylogin
1> sp_displaylogin person1
2> go
Suid: 2608
Loginame: person1
Fullname:
Default Database: mydb
Default Language:
Auto Login Script:
Configured Authorization:
Locked: NO
Date of Last Password Change: Nov 27 2007 11:03AM
Password expiration interval: 0
Password expired: NO
Minimum password length: 6
Maximum failed logins: 0
Current failed login attempts:
(return status = 0)
2.)Then select from sysprocesses by using the "suid"
1> select * from sysprocesses where suid=2608
2> go
spid kpid enginenum status suid hostname
program_name hostprocess cmd cpu physical_io
memusage blocked dbid uid gid
tran_name
time_blocked network_pktsz fid execlass
priority affinity id stmtnum
linenum origsuid block_xloid clientname
clienthostname clientapplname sys_id
ses_id loggedindatetime ipaddr
------ ----------- ----------- ------------ ----------- ----------
---------------- ----------- ---------------- ----------- -----------
----------- ------- ------ ----------- -----------
----------------------------------------------------------------
------------ ------------- ------ ------------------------------
---------- ------------------------------ ----------- -----------
----------- ----------- ----------- ------------------------------
------------------------------ ------------------------------ ------
----------- -------------------------- ---------------
53 163185511 0 recv sleep 2608 ssksdev1
AWAITING COMMAND 0 0
2 0 4 2609 0
NULL
NULL 512 0 EC2
MEDIUM ANYENGINE 0 1
1 NULL 0
0
0 Dec 5 2007 3:56PM 10.47.1.215
(1 rows affected)
3.) Now we know person1 is connected by using 10.47.1.215 machine =)
Friday, November 30, 2007
Thursday, November 08, 2007
Sybase Tuning
Engine
- no. of Engine
Cache
- create temp_cache, hot_cache, etc.
- cache size
- no. of cache partition (e.g. 2,4,8 but no bigger than no. of Engine)
- Large I/O pool (e.g. 2k,16K base on how many cache size?)
DB
- create tempdb, tempdb2, tempdb3, etc.
- sp_bindcache cache_name, dbname
Table / Object
- create index for table
- sp_bindcache cache_name, [,[owner.]tablename [, indexname | "text only" ] ]
Number of User connection
Number of open object
- no. of Engine
Cache
- create temp_cache, hot_cache, etc.
- cache size
- no. of cache partition (e.g. 2,4,8 but no bigger than no. of Engine)
- Large I/O pool (e.g. 2k,16K base on how many cache size?)
DB
- create tempdb, tempdb2, tempdb3, etc.
- sp_bindcache cache_name, dbname
Table / Object
- create index for table
- sp_bindcache cache_name, [,[owner.]tablename [, indexname | "text only" ] ]
Number of User connection
Number of open object
Friday, March 23, 2007
Sybase add user error
Error Message
Server Message: Number 17331, Severity 16
Server 'SYBASE', Procedure 'sp_adduser', Line 253:
User already has a login under a different name.
use the following sp
CREATE PROCEDURE drop_user_null_userdb
AS
DECLARE @username VARCHAR(25)
DECLARE GetOrphanUsers CURSOR
FOR
select Username = name
from userdb..sysusers
where suid not in(select suid from master..syslogins) and gid = 16390 and suid != -2
OPEN GetOrphanUsers
FETCH GetOrphanUsers
INTO @username
WHILE @@sqlstatus = 0
BEGIN
exec sp_dropuser @username
FETCH GetOrphanUsers
INTO @username
END
gid and suid need to change before exec
Server Message: Number 17331, Severity 16
Server 'SYBASE', Procedure 'sp_adduser', Line 253:
User already has a login under a different name.
use the following sp
CREATE PROCEDURE drop_user_null_userdb
AS
DECLARE @username VARCHAR(25)
DECLARE GetOrphanUsers CURSOR
FOR
select Username = name
from userdb..sysusers
where suid not in(select suid from master..syslogins) and gid = 16390 and suid != -2
OPEN GetOrphanUsers
FETCH GetOrphanUsers
INTO @username
WHILE @@sqlstatus = 0
BEGIN
exec sp_dropuser @username
FETCH GetOrphanUsers
INTO @username
END
gid and suid need to change before exec
Thursday, March 22, 2007
solaris 5.8 / 10 notes 2
Remove Interface
1. Remove or rename the /etc/hostname.hme0 file
2. ifconfig hme0 down
3. ifconfig hme0 unplumb
4. Edit /etc/hosts and /etc/netmasks
5. boot
1. Create the /etc/hostname.hme0 file
2. ifconfig hme0 plumb
3. Edit your /etc/hosts and /etc/netmasks
4. boot
DHCP server:
# dhcpconfig (command prompt)
or
# dhcpmgr (GUI)
Disk Management
fdisk /dev/rdsk/c4t4d5s0 [rdsk/c4t4d6s0]
format>partition
newfs /dev/rdsk/c4t4d5s0 [rdsk/c4t4d6s0]
RAID 0 (concatenation)
metainit d4 3 1 c1t5d0s0 1 c4t4d5s0 1 c4t4d6s0
metainit d4 2 1 c4t4d5s0 1 c4t4d6s0
mount /dev/md/dsk/d4 /sportix4
growfs -M /sportix4 /dev/md/rdsk/d4
/dev/md/dsk/d4 /dev/md/rdsk/d4 /devdb ufs 2 yes -
RAID 1 (umountable file system)
metainit -f d18 1 1 c2t8d0s0
metainit d28 1 1 c2t13d0s0
metainit d8 -m d18
umount /sportix4
vi /etc/vfstab
/dev/md/dsk/d8 /dev/md/rdsk/d8 /sportix4 ufs 2 yes -
mount /sportix4
metattach d0 d2
Add a user with rights as root
change the UID to "0" as same as root from /etc/passwd
Logging for executed commands
Solaris作業系統可以通過設置日 誌檔可以對每個用戶的每一條命令進行紀錄,這一功能默認是不開放的,為了打開它,需要執行/usr/lib/acct目錄下的accton檔,格式如下 /usr/lib/acct/accton /var/adm/pacct,在sun的手冊上,只有這一種用法,但這樣做的缺點是明顯的,大多數有經驗的入侵者一定不會放過/var/adm和 /var/log這兩個目錄的,如果它們看到有pacct這個東西,不刪才怪。針對這種情況其實有個很好的解決辦法,執行 /usr/lib/acct/accton 後面跟一個別的目錄和檔即可,如/usr/lib/acct/accton /yiming/log/commandlog,這樣入侵者不會在/var/adm/下看到pacct,入侵者也許會刪掉message,syslog等 日誌,但他並不知道實際上他所有的操作都被記錄在案,管理員事後只要把commandlog這個檔拷貝到/var/adm下,改為pacct ,同時執行讀取命令lastcomm,就一切盡在掌握啦。如lastcomm hack,可得到下面的輸出結果:
sh S hack pts/7 0.05 secs Mon Jun 12 14:28
sh F hack pts/7 0.00 secs Mon Jun 12 14:39
ls hack pts/7 0.01 secs Mon Jun 12 14:39
ls hack pts/7 0.02 secs Mon Jun 12 14:39
ls hack pts/7 0.01 secs Mon Jun 12 14:38
df hack pts/7 0.03 secs Mon Jun 12 14:38
ftp hack pts/7 0.02 secs Mon Jun 12 14:37
ls hack pts/7 0.01 secs Mon Jun 12 14:37
vi hack pts/7 0.02 secs Mon Jun 12 14:37
who hack pts/7 0.02 secs Mon Jun 12 14:36
Monday, March 19, 2007
Sybase "sa" Passwords Recovery
1. kill the sybase server
2. edit $SYBASE/ASE-12_5/install/RUN_ file
3. add "-psa" :
#!/bin/sh
#
# ASE page size (KB): 2k # Master device path: /home/sybase/data/master.dat
# Error log path: /home/sybase/ASE-12_5/install/SUN1.log
# Configuration file path: /home/sybase/ASE-12_5/SUN1.cfg
# Directory for shared memory files: /home/sybase/ASE-12_5
# Adaptive Server name: SUN1
# /home/sybase/ASE-12_5/bin/dataserver \
-d/home/sybase/data/master.dat \
-e/home/sybase/ASE-12_5/install/SUN1.log \
-c/home/sybase/ASE-12_5/spxh2_train.cfg \
-M/home/sybase/ASE-12_5 -psa \
-sSUN1 \
4. start the sybase server
./startserver -f RUN_
for example:
.....
00:00000:00001:2001/05/26 18:29:21.39 server 'bin_iso_1' (ID = 50)
00:00000:00001:2001/05/26 18:29:21.39 server on top of default character set:
00:00000:00001:2001/05/26 18:29:21.39 server 'iso_1' (ID = 1).
00:00000:00001:2001/05/26 18:29:21.39 server Loaded default Unilib conversion handle.
New SSO password for sa:tmfyrkdwpibung <-- find this line
.....
5. login sybase: isql -S -Usa -P tmfyrkdwpibung
6. change sa password: sp_password tmfyrkdwpibung,newpasswd
7. shutdown sybase
8. fallback RUN_ file
9. start sybase again
OK now! =)
2. edit $SYBASE/ASE-12_5/install/RUN_ file
3. add "-psa" :
#!/bin/sh
#
# ASE page size (KB): 2k # Master device path: /home/sybase/data/master.dat
# Error log path: /home/sybase/ASE-12_5/install/SUN1.log
# Configuration file path: /home/sybase/ASE-12_5/SUN1.cfg
# Directory for shared memory files: /home/sybase/ASE-12_5
# Adaptive Server name: SUN1
# /home/sybase/ASE-12_5/bin/dataserver \
-d/home/sybase/data/master.dat \
-e/home/sybase/ASE-12_5/install/SUN1.log \
-c/home/sybase/ASE-12_5/spxh2_train.cfg \
-M/home/sybase/ASE-12_5 -psa \
-sSUN1 \
4. start the sybase server
./startserver -f RUN_
for example:
.....
00:00000:00001:2001/05/26 18:29:21.39 server 'bin_iso_1' (ID = 50)
00:00000:00001:2001/05/26 18:29:21.39 server on top of default character set:
00:00000:00001:2001/05/26 18:29:21.39 server 'iso_1' (ID = 1).
00:00000:00001:2001/05/26 18:29:21.39 server Loaded default Unilib conversion handle.
New SSO password for sa:tmfyrkdwpibung <-- find this line
.....
5. login sybase:
6. change sa password: sp_password tmfyrkdwpibung,newpasswd
7. shutdown sybase
8. fallback RUN_ file
9. start sybase again
OK now! =)
Thursday, February 22, 2007
MySQL 中文亂碼
先在 my.ini 中
建立一個 mysql connection 檔案
這裏是 for PHP only:
<?
//database connection details.
$host = "localhost";
$link = mysql_connect($host, "login_name", "login_pw");
mysql_query("SET NAMES 'utf8'");
mysql_select_db("table_name", $link);
?>
ref: d.Cat blog
[mysqld]
default-character-set=latin1
[client]
default-character-set=utf8
init_connect='SET NAMES utf8'
建立一個 mysql connection 檔案
這裏是 for PHP only:
<?
//database connection details.
$host = "localhost";
$link = mysql_connect($host, "login_name", "login_pw");
mysql_query("SET NAMES 'utf8'");
mysql_select_db("table_name", $link);
?>
ref: d.Cat blog
Tuesday, January 23, 2007
solaris 5.8 notes 1
Stop Power Management for Server (if turn it on before)
vi /etc/power.conf
autoshutdown 30 9:00 9:00 shutdown -- change to --> noshutdown
Network Configuration
use DHCP
1. touch /etc/hostname.<> (e.g. hostname.hme0)
2. touch /etc/dhcp.<> (e.g. dhcp.hme0)
use Fixed IP
1. touch /etc/hostname.<>(e.g. hostname.hme0)
2. echo "<> (e.g. sun1)" >> /etc/hostname.
3. vi /etc/hosts
127.0.0.1 localhost
# add a new line
loghost
e.g. 192.168.0.1 sun1 loghost
4. touch /etc/defaultrouter
5. echo "<>" >> /etc/defaultrouter
6. echo "<> (e.g. 192.168.0.0 255.255.255.0) " >> /etc/inet/netmasks
7. init 6
8. use ifconfig -a to check status
9. use ifconfigup/down to start/stop interface ( e.g ifconfig hme0 up )
Simple NFS Server Configuration
for example: wanna to share /testing with read & write permission
1. chmod 766 /testing
2. /usr/lib/nfs/nfsd -a (start nfsd service)
3. /usr/lib/nfs/mountd (start mountd service)
4. /etc/init.d/nfs.server start
5. share -F nfs -o rw /testing
6. showmount -a (check who are mounting from you)
NFS Client
for example: wanna to mount 192.168.0.1's /testing folder
1. mount 192.168.0.1:/testing /mnt
2. cd /mnt
vi /etc/power.conf
autoshutdown 30 9:00 9:00 shutdown -- change to --> noshutdown
Network Configuration
use DHCP
1. touch /etc/hostname.<>
2. touch /etc/dhcp.<>
use Fixed IP
1. touch /etc/hostname.<>(e.g. hostname.hme0)
2. echo "<>
3. vi /etc/hosts
127.0.0.1 localhost
# add a new line
e.g. 192.168.0.1 sun1 loghost
4. touch /etc/defaultrouter
5. echo "<>
6. echo "<>
7. init 6
8. use ifconfig -a to check status
9. use ifconfig
Simple NFS Server Configuration
for example: wanna to share /testing with read & write permission
1. chmod 766 /testing
2. /usr/lib/nfs/nfsd -a (start nfsd service)
3. /usr/lib/nfs/mountd (start mountd service)
4. /etc/init.d/nfs.server start
NFS Client
for example: wanna to mount 192.168.0.1's /testing folder
1. mount 192.168.0.1:/testing /mnt
2. cd /mnt
Friday, January 05, 2007
Windows 2003 NTP Client/Server Installation & Configuration
NTP Server:
1. Configure the following registry entries:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time
Parameters\Type: NTP
Config\AnnounceFlags: 5
TimeProviders\NtpServer\Enabled: 1
Parameters\NtpServer: NoSync
2. Restart the service after changing these parameters from command prompt:
net stop w32time && net start w32time
NTP Client:
1. 3 utilities required:
instrsrv.exe
srvany.exe
Automachron (achron.exe)
2. Install achron.exe, start it from command prompt:
c:\program files\one guy coding\automachron\achron.exe /s
Config & Exit the Automachron
3. Put instrsrv.exe & srvany.exe files in a directory c:\reskit, open command prompt:
c:\reskit\instrsrv.exe Automachron c:\reskit\srvany.exe
4. Configure the following registry entries:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Automachron
From the Edit menu, click Add Key and name it Parameters.
Next from the Edit menu, click Add Value and type this information.
Value Name: Application
Data Type: REG_SZ
String: C:\Program Files\One Guy Coding\Automachron\achron.exe /s
5. Check Automachron’s LOG to ensure achron.exe run as a service successfully.
1. Configure the following registry entries:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time
Parameters\Type: NTP
Config\AnnounceFlags: 5
TimeProviders\NtpServer\Enabled: 1
Parameters\NtpServer: NoSync
2. Restart the service after changing these parameters from command prompt:
net stop w32time && net start w32time
NTP Client:
1. 3 utilities required:
instrsrv.exe
srvany.exe
Automachron (achron.exe)
2. Install achron.exe, start it from command prompt:
c:\program files\one guy coding\automachron\achron.exe /s
Config & Exit the Automachron
3. Put instrsrv.exe & srvany.exe files in a directory c:\reskit, open command prompt:
c:\reskit\instrsrv.exe Automachron c:\reskit\srvany.exe
4. Configure the following registry entries:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Automachron
From the Edit menu, click Add Key and name it Parameters.
Next from the Edit menu, click Add Value and type this information.
Value Name: Application
Data Type: REG_SZ
String: C:\Program Files\One Guy Coding\Automachron\achron.exe /s
5. Check Automachron’s LOG to ensure achron.exe run as a service successfully.
Subscribe to:
Posts (Atom)