[Notes] Linux find 指令參考
2011/10/04
0
意見
之前搜尋到的,註記一下
[oracle@example ~]$ sqlplus /nolog SQL*Plus: Release 10.2.0.5.0 - Production on Tue Oct 4 13:54:37 2011 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. SQL> conn / as sysdba; Connected. SQL> show parameter db_recovery NAME TYPE VALUE ------------------------ ------- --------------------- db_recovery_file_dest string /u01/app/oracle/flash_recovery_area db_recovery_file_dest_size big integer 20G
[oracle@ksfm2 ~]$ rman target / Recovery Manager: Release 10.2.0.5.0 - Production on Tue Oct 4 14:21:52 2011 Copyright (c) 1982, 2007, Oracle. All rights reserved. connected to target database: KCLV (DBID=3445048213) RMAN> CROSSCHECK ARCHIVELOG ALL; .... .... RMAN> BACKUP ARCHIVELOG ALL DELETE ALL INPUT;
RMAN> delete force noprompt archivelog until time 'sysdate - 7'; RMAN> exit;
#!/bin/bash
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=ORCL
export RMAN_CMDFILE=RMAN_CMDFILE
$ORACLE_HOME/bin/rman target=/ cmdfile=$RMAN_CMDFILE
# Cleaning Empty Folder
find /u01/app/oracle/flash_recovery_area/ORCL/archivelog -type d -empty -exec rm -rf {} \;
(2) RMAN_CMDFILE
delete force archivelog until time 'sysdate - 7'; exit;
[root@example ~]# cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 05 Lun: 00 Vendor: HP Model: Ultrium 3-SCSI Rev: G6D Type: Sequential-Access ANSI SCSI revision: 03 .... ....
Ex:
/dev/[n]stX{l,m,a} => l,m,a 代表壓縮比率
l: low
m: medium
a: high
First auto rewind SCSI tape device name: /dev/st0 Second auto rewind SCSI tape device name: /dev/st1
[root@example ~]# ls -l /dev/nst0* crw-rw---- 1 root disk 9, 128 Oct 4 08:37 /dev/nst0 crw-rw---- 1 root disk 9, 224 Oct 4 08:37 /dev/nst0a crw-rw---- 1 root disk 9, 160 Oct 4 08:37 /dev/nst0l crw-rw---- 1 root disk 9, 192 Oct 4 08:37 /dev/nst0m
First non-rewind SCSI tape device: /dev/nst0 Second non-rewind SCSI tape device: /dev/nst1
[root@example ~]# ls -l /dev/nst0* crw-rw---- 1 root disk 9, 128 Oct 4 08:37 /dev/nst0 crw-rw---- 1 root disk 9, 224 Oct 4 08:37 /dev/nst0a crw-rw---- 1 root disk 9, 160 Oct 4 08:37 /dev/nst0l crw-rw---- 1 root disk 9, 192 Oct 4 08:37 /dev/nst0m
# mt -f /dev/st0 status SCSI 2 tape drive: File number=0, block number=0, partition=0. Tape block size 0 bytes. Density code 0x44 (no translation). Soft error count since last status=0 General status bits on (41010000): BOT ONLINE IM_REP_EN
# mt -f /dev/st0 erase
# mt -f /dev/st0 offline
# mt -f /dev/st0 rewind
# tar -cvf /dev/nst0 /etc /var/www # tar -zcvf /dev/nst0 /etc /var/www => 加上壓縮
# tar -tvf /dev/nst0 # tar -tzvf /dev/nst0
# cd / # mt -f /dev/st0 rewind # tar -x[z]vf /dev/nst0 etc
# mt -f /dev/nst0 eod
# mt -f /dev/nst0 bsfm 1
# mt -f /dev/nst0 fsf 1
psql -d blahDB -U Qoo -W Password for user Qoo: <輸完密碼後 ...> psql: FATAL: Ident authentication failed for user Qoo
此處是以 Ubuntu 的位置為範例 # vi /etc/postgresql/8.4/main/pg_hba.conf原始格式
# Database administrative login by UNIX sockets local all postgres ident # TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all ident # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5加入以下的資訊
# Database administrative login by UNIX sockets local all postgres ident # TYPE DATABASE USER CIDR-ADDRESS METHOD local all all trust # IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 127.0.0.1/32 trust host all all 172.18.0.0/24 trust host all all 172.18.3.0/24 trust重啟服務並重新登入測試
# service postgresql restart # psql -d blahDB -U Qoo -W
set -o vi切換後,編輯的方式就與在 vi 中相同,一樣有 Insert Mode 及 Command Mode。 切換回 emacs 模式:
set -o emacs
| Ctrl-A | 游標移動至該行最開頭 |
|---|---|
| Ctrl-E | 游標移動至該行最尾端 |
| Ctrl-U | 從游標位置開始刪除至該行最開始 |
Ex: # cd /var/www/test => 輸入 Ctrl-U |
|
| Ctrl-Y | 從游標位置開始刪除至該行最開始 |
| Ctrl-K | 從游標位置開始刪除至該行最尾端 |
| Ctrl-R | 往後搜尋輸入過的指令 |
Ex: # [Ctrl-R]ls (reverse-i-search)`ls': ls -l /etc/samba/ |
|
| Ctrl-J | 在搜尋指令模式下,當找到要的指令時,確認輸入 |
Ex: (reverse-i-search)`ls': ls -l /etc/samba/ Ctrl-J # ls -l /etc/samba |
|
| Ctrl-G | 在搜尋指令模式下,回到原本的輸入指令模式 |
| Alt-. | 代入上次下的指令中的最後一個輸入的參數值 |
Ex: # cp /etc/samba/smb.conf /etc/samba/smb.conf_bak # vim Alt-. # vim /etc/samba/smb.conf_bak |
|
| Alt-Ctrl-Y | 代入上次下的指令中的第一個輸入的參數值 |
Ex: # cp /etc/samba/smb.conf /etc/samba/smb.conf_bak # vim Alt-C-Y # vim /etc/samba/smb.conf |
|
| Alt-? | 跟連續按兩下Tab一樣 |
| Ctrl-W | 往回刪除一個字元,以[空白符號]作為切分字元的邊界 |
Ex: # cp /etc/samba/smb.conf /etc/samba/smb.conf_bak Alt-BS # cp /etc/samba/smb.conf /etc/samba/smb.conf_ |
|
| Alt-Backspace | 往回刪除一個字元,以單字為刪除字元的邊界 |
| Ctrl-_ Ctrl-X Ctrl-U |
都是 Undo |
| Ctrl-D | 離開 Shell |
| Ctrl-L | 清除螢幕 |
在Spring 在 JBoss 中定義 EJB 的方式如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-2.5.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-2.5.xsd">
<util:map id="jndiEnv">
<entry key="java.naming.factory.initial"
value="org.jnp.interfaces.NamingContextFactory" />
<entry key="java.naming.factory.url.pkgs"
value="org.jboss.naming:org.jnp.interfaces" />
<entry key="java.naming.provider.url"
value="jnp://localhost:1099" />
</util:map>
<!-- EJB 2 的寫法 -->
<jee:remote-slsb id="WorkFlowEngineDS"
jndi-name="WorkflowEngine"
business-interface="com.dsc.nana.services.engine.WorkflowEngine"
resource-ref="true"
cache-home="true"
lookup-home-on-startup="false"
environment-ref="jndiEnv" />
<!-- 以下是 EJB 3 的寫法 -->
<jee:jndi-lookup id="NaNaWorkflowEngineDS"
jnd-name="WorkflowEngine"
environment-ref="jndiEnv" />
<!-- 另外一種寫法 -->
<bean id="remoteJndiTemplate"
class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial"
value="org.jnp.interfaces.NamingContextFactory" />
<prop key="java.naming.provider.url"
value="jnp://localhost:1099" />
<prop key="java.naming.factory.url.pkgs"
value="org.jnp.interfaces:org.jboss.naming" />
</props>
</property>
</bean>
<bean id="exportFormInst"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="remoteJndiTemplate" />
<property name="jndiName" value="WorkflowEngine" />
</bean>
</beans>
web2Project 是從 dotProject 分支出來的專案管理軟體,測試過程中發現,安裝後前端新增中文資料,並不會有亂碼,但是從MySQL就變成亂碼,修正方式如下
[mysqld] default-character-set=utf8 [client] default-character-set=utf8
function db_connect($host = 'localhost', $dbname, $user = 'root', $passwd = '', $persist = false) {
global $db, $ADODB_FETCH_MODE;
switch (strtolower(trim(w2PgetConfig('dbtype')))) {
case 'oci8':
case 'oracle':
if ($persist) {
$db->PConnect($host, $user, $passwd, $dbname) or die('FATAL ERROR: Connection to database server failed');
} else {
$db->Connect($host, $user, $passwd, $dbname) or die('FATAL ERROR: Connection to database server failed');
}
if (!defined('ADODB_ASSOC_CASE')) define('ADODB_ASSOC_CASE', 0);
break;
default:
//mySQL
if ($persist) {
$db->PConnect($host, $user, $passwd, $dbname) or die('FATAL ERROR: Connection to database server failed');
} else {
$db->Connect($host, $user, $passwd, $dbname) or die('FATAL ERROR: Connection to database server failed');
}
mysql_query("SET NAMES 'utf8'"); // 加入這一行 ...
}
$ADODB_FETCH_MODE = ADODB_FETCH_BOTH;
}
Oracle 11g 是用 Profile 的方式來管理使用者的密碼及相關的一些資訊,因此 default 這個 Profile 會有密碼過期的問題,修改讓密碼不過期的方式如下:
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_LIFE_TIME UNLIMITED;
檢查過期資訊的 SQL 如下:
SELECT LIMIT
FROM dba_profiles
WHERE resource_name = 'FAILED_LOGIN_ATTEMPTS'
AND PROFILE = (SELECT PROFILE FROM dba_users WHERE username = 'scott');
Open Source 的監控軟體不少,會用 Zabbix 主要是因有一次想監控 Oracle 主機狀況時,測了一下 cacti 及 nagios 這兩套,似乎沒辦法做到我想要的監測方式(沒有很深入測試,也許也做的到),而在 Zabbix 中,則有人寫了Orabbix這套,甚至連相關的Template及監控的SQL,因在 Oracle中有許多的效能都有相關的Table可以Query到都寫好了(當然也可以自行新增想監控的內容).
Orabbix 設定後的樣子
安裝方式:
Software requirements
安裝相關套件
# yum --disablerepo=\* --enablerepo=c5-media install \
gcc automake mysql mysql-server zlib-devel glibc-devel \
curl-devel libidn-devel openssl-devel net-snmp-devel \
rpm-devel OpenIPMI-devel
# yum install libssh2 libssh2-devel php-gd php-bcmath php-xml \
php-mysql php-net-socket php-mbstring \
php-pear-Net-Socket
下載 Source Code
Compile Source Code and Install(安裝目錄設定為 /usr/local/zabbix)
# cd zabbix
# ./configure --enable-server --enable-proxy --enable-agent \
--with-mysql --with-net-snmp --with-libcurl \
--with-openipmi --prefix=/usr/local/zabbix
# make && make install
建立資料庫, 並載入資料
mysql> create database zabbix character set utf 8; 建立使用者,並設定密碼 mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix'; mysql> flush privileges;
# cd zabbix # mysql -u zabbix -p zabbix < create/schema/mysql.sql # mysql -u zabbix -p zabbix < create/data/data.sql # mysql -u zabbix -p zabbix < create/data/images_mysql.sql
初始化設定檔
建立使用者 # useradd -m -s /bin/bash zabbix # cd Zabbix # mkdir /etc/zabbix 複製相關設定檔到 /etc/zabbix # cp misc/conf/zabbix_server.conf /etc/zabbix # cp misc/conf/zabbix_agentd.conf /etc/zabbix 更改檔案擁有者及權限 chmod 400 /etc/zabbix/zabbix_server.configure chown zabbix /etc/zabbix/zabbix_server.conf
# vi /etc/zabbix/zabbix_server.conf 修改下面三個參數 ... ... DBName=zabbix DBUser=zabbix DBPassword=zabbix
啟動 Zabbix
啟動 Agent # /usr/local/zabbix/sbin/zabbix_agentd 啟動 Server # /usr/local/zabbix/sbin/zabbix_server
設定PHP程式
# cd zabbix # cp -r frontends/php /var/www/html/zabbix # chown -R apache.apache /var/www/html/zabbix
安裝時如果有遇到參數需要調整,
# vi /etc/php.ini ..... ..... max_execution_time = 600 max_input_time = 600 max_execution_time = 300 mbstring.func_overload = 2
修改 MySQL 密碼的方式如下:
[root@project]# mysqladmin -u root -p password blah123PS: blah123 為修改後的新密碼, password 是命令選項
mysql> update mysql.user set password=password('blah123') where User='root';
mysql> flush privileges;
mysql> exit
使用 mysqladmin -u root -p password 登入時發生以下的錯誤時
[root@project mysql]# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
處理方式:
[root@projectl]# service mysqld stop
[root@projectl]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
[root@projectl]# mysql -u root mysql
mysql> update mysql.user set password=password('blah123') where User='root';