Thứ Sáu, 24 tháng 7, 2020

Các lệnh hữu ích Unix dành cho các DBA

Bài viết này chứa một danh sách ngắn gọn các lệnh mà hầu hết các DBA sẽ thao tác trên OS LINUX, SOLARIS, AIX  


NỘI DUNG:
  • Thao tác với tập tin cơ bản
  • Quyền file, thư mục
  • Quản lý người dùng hệ điều hành
  • Quản lý proces
  • Tên người dùng và tên máy chủ
  • Dòng lỗi trong tập tin
  • Xóa các tập tin cũ
  • Kiểm tra tệp tồn tại
  • Xoay tệp nhật ký
  • Tìm tập tin lớn
  • Thực hiện hành động cho mọi tệp trong thư mục
  • Thực hiện hành động cho mọi dòng trong một tệp
  • Bí danh (alias)
  • Xóa DOS CR / LFs (^ M)
  • Chạy các lệnh như người dùng Oracle từ Toot
  • Nén tập tin
  • Giám sát hiệu suất
    • vmstat
    • free
    • iostat
    • top/topas
    • sar
    • mpstat
  • Ẩn mật khẩu
  • Tập lệnh khởi động tự động trên Linux
  • CRON
  • Cluster Wide CRON Jobs trên Tru64
  • NFS Mount (Sun)
  • NFS Mount (Tru64)
  • Cài đặt profile hữu ích
  • Tập tin hữu ích

THAO TÁC VỚI TẬP TIN CƠ BẢN

Lệnh "pwd" hiển thị thư mục hiện tại.
root> pwd
/u01/app/oracle/product/12.2.0.2.0
Lệnh "ls" liệt kê tất cả các tệp và thư mục trong thư mục được chỉ định. Nếu không có vị trí được xác định, nó hoạt động trên thư mục hiện tại.
root> ls
root> ls /u01
root> ls -al
Danh sách cờ "-a" bị ẩn "." các tập tin. Cờ "-l" liệt kê chi tiết tập tin.
Lệnh "cd" được sử dụng để thay đổi thư mục.
root> cd /u01/app/oracle
Lệnh "touch" được sử dụng để tạo một tệp trống mới với các quyền mặc định.
root> touch my.log
Lệnh "rm" được sử dụng để xóa các tập tin và thư mục.
root> rm my.log
root> rm -R /archive
Cờ "-R" cho biết lệnh lặp lại thông qua các thư mục con.
Lệnh "mv" được sử dụng để di chuyển hoặc đổi tên các tệp và thư mục.
root> mv [from] [to]
root> mv my.log my1.log
root> mv * /archive
root> mv /archive/* .
Các "." đại diện cho thư mục hiện tại.
Lệnh "cp" được sử dụng để sao chép các tập tin và thư mục.
root> cp [from] [to]
root> cp my.log my1.log
root> cp * /archive
root> cp /archive/* .
Lệnh "mkdir" được sử dụng để tạo các thư mục mới.
root> mkdir archive
Lệnh "rmdir" được sử dụng để xóa các thư mục.
root> rmdir archive
Lệnh "find" có thể được sử dụng để tìm vị trí của các tệp cụ thể.
root> find / -name dbmspool.sql
root> tìm / -print | grep -i dbmspool.sql
Cờ "/" đại diện cho thư mục nhìn chằm chằm cho tìm kiếm. Các ký tự đại diện như "dbms *" có thể được sử dụng cho tên tệp.
Lệnh "which" có thể được sử dụng để tìm vị trí thực thi mà bạn đang sử dụng.
oracle> sqlplus
Lệnh "which" tìm kiếm cài đặt PATH của bạn cho các lần xuất hiện của tệp thực thi được chỉ định.

QUYỀN TẬP TIN

Quyền như sau
Owner      Group      World      Permission
=========  =========  =========  ======================
7 (u+rwx)  7 (g+rwx)  7 (o+rwx)  read + write + execute
6 (u+rw)   6 (g+rw)   6 (o+rw)   read + write
5 (u+rx)   5 (g+rx)   5 (o+rx)   read + execute
4 (u+r)    4 (g+r)    4 (o+r)    read only
2 (u+w)    2 (g+w)    2 (o+w)    write only
1 (u+x)    1 (g+x)    1 (o+x)    execute only
Lệnh hay dùng:
# chmod 777 *.log   -- Gán full quyền cho owner, group, group khác
# chmod 775 *.log -- Gán full quyền cho owner, group của owner và quyền read+execute cho group khác # chmod +x binh.sh -- Gán quyền thực thi file binh.sh # chmod -R 775 /my/dir -- Gán full quyền các file, thư mục hiện tại, thư mục con cho owner, group của owner và quyền read+execute cho group khác
Lệnh "umask" có thể được sử dụng để đọc hoặc đặt quyền truy cập tệp mặc định cho người dùng hiện tại.
root> umask 022
Giá trị umask được trừ khỏi các quyền mặc định (666) để đưa ra quyền cuối cùng.
666: Quyền mặc định
022: - giá trị ô
644: sự cho phép cuối cùng
Lệnh "chmod" được sử dụng để thay đổi quyền của tệp sau khi tệp được tạo.
root> chmod 777 * .log
Các eqivalents ký tự có thể được sử dụng trong lệnh chmod.
root> chmod o+rwx *.log
root> chmod g+r   *.log
root> chmod -Rx   *.log
Lệnh "chown" được sử dụng để đặt lại quyền sở hữu các tệp sau khi tạo.
root> chown -R oinstall.dba *
Cờ "-R"  là đệ quy (rescursive) khiến lệnh ăn vào các thư mục con nào.

QUẢN LÝ NGƯỜI DÙNG HỆ ĐIỀU HÀNH

Lệnh "useradd" được sử dụng để thêm người dùng hệ điều hành.
root> useradd -G oinstall -g dba -d /usr/users/my_user -m -s /bin/ksh my_user
  • Cờ "-G" chỉ định nhóm chính.
  • Cờ "-g" chỉ định nhóm phụ.
  • Cờ "-d" chỉ định thư mục mặc định.
  • Cờ "-m" tạo thư mục mặc định.
  • Cờ "-s" chỉ định shell mặc định.
Lệnh "usermod" được sử dụng để sửa đổi cài đặt người dùng sau khi người dùng đã được tạo.
root> usermod -s /bin/csh my_user
Lệnh "userdel" được sử dụng để xóa người dùng hiện tại.
root> userdel -r my_user
Cờ "-r" xóa thư mục mặc định.
Lệnh "passwd" được sử dụng để đặt hoặc đặt lại mật khẩu đăng nhập của người dùng.
root> passwd my_user
Lệnh "who" có thể được sử dụng để liệt kê tất cả người dùng có kết nối hệ điều hành.
root> who
root> who | head -5
root> who | tail -5
root> who | grep -i ora
root> who | wc -l
  • Lệnh "head -5" giới hạn đầu ra trong 5 dòng đầu tiên của lệnh who.
  • Lệnh "tail -5" giới hạn đầu ra ở 5 dòng cuối cùng của lệnh who.
  • Lệnh "grep -i ora" giới hạn đầu ra ở các dòng có chứa "ora".
  • Lệnh "wc -l" trả về số lượng dòng từ "ai" và do đó số lượng người dùng được kết nối.

QUẢN LÝ TIẾN TRÌNH (PROCESS)

Lệnh "ps" liệt kê thông tin quy trình hiện tại.
# ps
# ps -ef | grep -i ora
# ps -ef | grep -i ora | grep -v grep
# ps -ef | grep -i [o] ra
Các quy trình cụ thể có thể bị giết (kill) bằng cách chỉ định id tiến trình trong lệnh kill.
# kill 12345
# kill -9 12345
Bạn có thể tiêu diệt (kill) nhiều tiến trình bằng một lệnh đơn bằng cách kết hợp "giết" với các lệnh "ps" và "awk".
# kill -9 `ps -ef | grep ora | awk '{print $2}'`

TÊN VÀ TÊN MÁY CHỦ (HOSTNAME)

Các lệnh "uname" và "hostname" có thể được sử dụng để lấy thông tin về máy chủ.
root> uname -a
OSF1 oradb01.lynx.co.uk V5.1 2650 alpha

root> uname -a | awk '{ print $2 }'
oradb01.lynx.co.uk

root> hostname
oradb01.lynx.co.uk

DÒNG LỖI TRONG TẬP TIN

Bạn có thể trả về các dòng lỗi trong một tệp bằng cách sử dụng.
root> cat alert_LIN1.log | grep -i ORA-
Lệnh "grep -i ORA-" giới hạn đầu ra ở các dòng có chứa "ORA-". Cờ "-i" làm cho trường hợp so sánh không phân biệt chữ hóa thường. Một số dòng lỗi có thể được trả về bằng lệnh "wc". Điều này thường đưa ra số đếm từ, nhưng cờ "-l" thay đổi từ đó để đếm số dòng.
root> cat alert_LIN1.log | grep -i ORA- | wc -l

XÓA CÁC TẬP TIN CŨ

Các lệnh  find có thể được sử dụng để cung cấp một danh sách các tập tin vào lệnh rm hoặc lệnh "-delete" có thể được sử dụng trực tiếp.
find /backup/logs/ -name daily_backup* -mtime +21 -exec rm -f {} ;

find /backup/logs/daily_backup* -mtime +5 -exec rm -f {} \;

find /backup/logs/daily_backup* -mtime +5 -delete;

KIỂM TRA TỆP TỒN TẠI

Shell Bash cho phép bạn kiểm tra sự hiện diện của một tệp bằng cách sử dụng so sánh "[-e filepath]". Trong đoạn script sau, nhật ký sao lưu được đổi tên nếu nó xuất hiện và các tệp cũ hơn 30 ngày bị xóa sẽ bị xóa.
#!/bin/bash
if [ -e /tmp/backup.log ]; then
  DATE_SUFFIX=`date +"%Y"-"%m"-"%d"`
  mv /tmp/backup.log /tmp/backup-$DATE_SUFFIX.log
fi

# Xóa các tệp nhật ký cũ.
find /tmp/backup*.log -mtime +30 -delete;
Đây là một ví dụ về luân chuyển nhật ký, trong đó nhật ký mới nhất không bao gồm ngày trong tên của nó.

XOAY (ROTATE) TỆP NHẬT KÝ

Xem phần trước cho một biến thể khác về luân chuyển nhật ký (log rotation).
Kịch bản sau đây cung cấp một ví dụ về cách quản lý vòng quay nhật ký bằng cách sử dụng trình bao Bash. Tệp nhật ký bao gồm ngày trong tên tệp. Các tập tin cũ hơn 30 ngày sẽ bị xóa.
#!/bin/bash
DATE_SUFFIX=`date +"%Y"-"%m"-"%d"`
LOG_FILE=/tmp/backup-$DATE_SUFFIX.log

# Làm một cái gì đó cần đăng nhập.
echo "Send this to log" >> $LOG_FILE 2>&1

# Xóa các tệp nhật ký cũ.
find /tmp/backup*.log -mtime +30 -delete;

TÌM TẬP TIN LỚN

Tìm 20 tệp lớn nhất đệ quy từ thư mục này.
$ find . -type f -print0 | xargs -0 du -h | sort -hr | head -20

THỰC HIỆN HÀNH ĐỘNG CHO MỌI TỆP TRONG THƯ MỤC

Các tập lệnh sau đây cho thấy hai phương thức để thực hiện một hành động cho mỗi tệp trong một thư mục.
#!/bin/bash
for FILE in `ls /tmp/`; do
  # Do something with the file name.
  echo $FILE;
done

# Or this.

for FILE in $( ls /tmp/ ); do
  echo $FILE
done

THỰC HIỆN HÀNH ĐỘNG CHO MỌI DÒNG TRONG MỘT TỆP

Các tập lệnh sau đây cho thấy một phương thức để thực hiện một hành động cho mỗi dòng trong một tệp.
#!/bin/bash
while read LINE; do
  # Do something with the line.
  echo $LINE;
done < /tmp/myfile.txt

BÍ DANH (ALIAS)

Bí danh là một phím tắt được đặt tên cho một lệnh dài hơn sử dụng định dạng sau.
alias name='command'
Ví dụ: nếu bạn yêu cầu quyền truy cập sudo cho một lệnh cụ thể, bạn có thể muốn bao gồm lệnh này dưới dạng bí danh để bạn không phải nhớ nhập nó.
alias myscript='sudo -u oracle /path/to/myscript'

XÓA DOS CR / LFS (^ M)

Xóa các ký tự CR / LF (^ M) kiểu DOS khỏi các tệp UNIX bằng cách sử dụng.
sed -e 's/^M$//' filename > tempfile
Tempfile mới được tạo nên loại bỏ ký tự ^ M.
Nếu có sẵn, có lẽ tốt hơn để sử dụng các lệnh dos2unixvà unix2dos.

CHẠY CÁC LỆNH NHƯ NGƯỜI DÙNG ORACLE TỪ GỐC

Các tập lệnh sau đây cho thấy cách một số lệnh có thể được chạy với tư cách là người dùng "oracle" người dùng "root".
#!/bin/ksh
su - oracle <<EOF
ORACLE_SID=LIN1; export ORACLE_SID
rman catalog=rman/rman@w2k1 target=/ cmdfile=my_cmdfile log=my_logfile append 
EOF
Điều này thường là cần thiết khi các công việc CRON được chạy từ người dùng root chứ không phải người dùng orory.

NÉN TẬP TIN

Tạo các file, thư mục:
mkdir -p /tmp/test-dir/subdir1
mkdir -p /tmp/test-dir/subdir2
mkdir -p /tmp/test-dir/subdir3
mkdir -p /tmp/extract-dir
touch /tmp/test-dir/subdir1/file1.txt
touch /tmp/test-dir/subdir1/file2.txt
touch /tmp/test-dir/subdir2/file3.txt
touch /tmp/test-dir/subdir2/file4.txt
touch /tmp/test-dir/subdir3/file5.txt
touch /tmp/test-dir/subdir3/file6.txt

tar

Nén

# cd /tmp
# tar -cvf archive1.tar test-dir

Kiểm tra:

# tar -tvf /tmp/archive1.tar

Giải nén:

# cd /tmp/extract-dir
# tar -xvf /tmp/archive1.tar

gzip

Để tạo ra file .gz, cần nén fiel tar

# cd /tmp
# tar -cvf archive3.tar test-dir
# gzip archive3.tar --File tạo ra archive3.tar.gz

Để cho kết quả lẹnh trên ó thể dùng 1 lệnh:

# cd /tmp
# tar -cvzf archive3.tar.gz test-dir --File tạo ra archive3.tar.gz

Giải nén ra file archive3.tar :

# gunzip archive3.tar.gz -- Ra file archive3.tar

Giải nén trực tiếp ra thư mục archive3:

# cd /tmp/extract-dir
# tar -xvzf /tmp/archive3.tar.gz

zip

Nén:

# cd /tmp
# zip -r archive5.zip test-dir

Check:

# unzip -l archive5.zip

Giải nén:

# cd /tmp/extract-dir
# unzip /tmp/archive5.zip

cpio

Nén:

# cd /tmp
# find test-dir | cpio -ov > archive6.cpio

Check:

# cpio -t < /tmp/archive6.cpio

Giải nén:

# cd /tmp/extract-dir
# cpio -idmv < /tmp/archive6.cpio

GIÁM SÁT HIỆU NĂNG (PERFORMANCE)


VMSTAT

Báo cáo thống kê bộ nhớ ảo (swap, free RAM, si, so, CPU)
# vmstat 5 3
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 1060608  24372 739080    0    0  1334    63 1018 1571 14 11 66 10  0
 0  0      0 995244  24392 799656    0    0  6302   160 1221 1962 10 10 62 18  0
 0  0      0 992376  24400 799784    0    0     1    28  992 1886  3  2 95  0  0
#

FREE

Báo cáo việc sử dụng bộ nhớ hiện tại. Dòng "- / + bộ đệm / bộ đệm:" đại diện cho bộ nhớ thực được sử dụng và bộ nhớ trống, bỏ qua bộ đệm của hệ thống tệp Linux.
# free
             total       used       free     shared    buffers     cached
Mem:       8178884    4669760    3509124          0     324056    1717756
-/+ buffers/cache:    2627948    5550936
Swap:     10289148          0   10289148
#

IOSTAT

Báo cáo thống kê I/O.
# iostat
Linux 3.2.10-3.fc16.x86_64 (maggie.localdomain)  03/19/2012  _x86_64_(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.02    0.23    0.51    0.78    0.00   96.46

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               9.23       100.55        62.99    1796672    1125538
dm-0             13.60       100.31        62.99    1792386    1125524
dm-1              0.02         0.08         0.00       1432          0

# iostat 5 100 --5s chạy 1 lần lấy 100 mẫu

TOP

Hiển thị các proces chiếm tải, CPU sử dụng, Chú ý cột 0 %id (là free), Mem sử dụng, Swap sử dụng
# top
top - 13:58:17 up 2 min,  1 user,  load average: 2.54, 1.11, 0.41
Tasks: 160 total,   6 running, 154 sleeping,   0 stopped,   0 zombie
Cpu(s): 77.1%us, 22.6%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.3%hi,  0.0%si,  0.0%st
Mem:   2058872k total,   879072k used,  1179800k free,    23580k buffers
Swap:  4095992k total,        0k used,  4095992k free,   620116k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 2882 oracle    20   0  610m  64m  56m R 24.9  3.2   0:02.20 oracle
 2927 root      20   0 90328 3832 2604 R 24.6  0.2   0:00.89 Xorg
 2931 oracle    20   0  605m  34m  31m R 11.5  1.7   0:00.35 oracle
 2933 oracle    20   0  605m  34m  30m S  9.8  1.7   0:00.30 oracle
 2888 oracle    20   0  614m  52m  40m S  6.9  2.6   0:00.78 oracle
 2935 oracle    20   0  604m  22m  20m S  6.2  1.1   0:00.19 oracle
 2937 oracle    20   0  604m  19m  17m R  4.6  1.0   0:00.14 oracle
 2688 oracle    -2   0  603m  15m  13m S  4.3  0.8   0:01.08 oracle
 2685 oracle    20   0  603m  15m  13m S  0.7  0.8   0:00.22 oracle
 2939 oracle    20   0  217m 4084 3504 R  0.7  0.2   0:00.02 oracle
 2698 oracle    20   0  604m  18m  16m S  0.3  0.9   0:00.17 oracle
 2702 oracle    20   0  609m  22m  14m S  0.3  1.1   0:00.17 oracle
 2704 oracle    20   0  618m  21m  19m S  0.3  1.1   0:00.21 oracle
 2714 oracle    20   0  603m  20m  18m S  0.3  1.0   0:00.18 oracle
    1 root      20   0 10364  704  588 S  0.0  0.0   0:00.36 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
    6 root      20   0     0    0    0 S  0.0  0.0   0:00.03 events/0
    7 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cpuset
    8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper
    9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 netns
#
Các PID cột sau đó có thể được kết hợp với các cột  SPID trên view v$proces để cung cấp thêm thông tin về proces này.
SELECT a.username, 
       a.osuser, 
       a.program, 
       spid, 
       sid, 
       a.serial#
FROM   v$session a,
       v$process b
WHERE  a.paddr = b.addr
AND    spid = '&pid';
-- IDLE 99.6%
# top hoặc topas
top - 17:14:40 up  6:49,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 104 total,   1 running, 103 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.1%sy,  0.0%ni, 99.6%id,  0.2%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2050836k total,   459132k used,  1591704k free,    44956k buffers
Swap:  4128760k total,        0k used,  4128760k free,   163880k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
 3414 root      20   0 15084 1088  824 R  2.0  0.1   0:00.01 top                
    1 root      20   0 19396 1500 1192 S  0.0  0.1   0:00.71 init               
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd           
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                      
...

SAR

Trên hệ thống Linux, sar (System Activity Reporter) có lẽ là một trong những công cụ đơn giản và linh hoạt nhất để sử dụng hệ thống báo cáo bao gồm CPU, bộ nhớ, đĩa và hoạt động mạng. Nó tự động thu thập số liệu thống kê hoạt động hệ thống khi được cài đặt bằng lệnh sau.
# yum install sysstat
Các sarcú pháp lệnh có dạng như sau.
# sar [options] [interval [count]]
Các tham số "tùy chọn" xác định những gì được báo cáo, sẽ được thảo luận sau. Tham số "khoảng" cho biết khoảng thời gian tính bằng giây giữa các mẫu. Tham số "đếm" cho biết số lượng mẫu sẽ được lấy trước khi lệnh kết thúc. Nếu "tính" bị bỏ qua, việc lấy mẫu sẽ tiếp tục vô thời hạn. Nếu cả "khoảng" và "đếm" bị bỏ qua, lệnh sẽ báo cáo các giá trị từ các mẫu 10 phút được lấy kể từ khi máy được khởi động lại lần cuối.
Như đã thấy trong trang sar man page, có rất nhiều tùy chọn có sẵn, nhưng một số điểm bắt đầu bạn có thể thấy thú vị bao gồm:
  • CPU:
    • CPU cơ bản: sar [-u] [distance [Count]]
    • Tải trung bình: sar -q [khoảng [đếm]]
  • sar:
    • Phân trang hạt nhân: sar -B [distance [Count]]
    • Bộ nhớ không sử dụng: sar -r [distance [Count]]
    • Hoán đổi không gian: sar -S [khoảng [đếm]]
  • Đĩa:
    • I / O đĩa trung bình: sar -b [distance [Count]]
    • Đĩa I / O: sar -dp [distance [Count]]
  • Mạng:
    • Mạng: sar -n DEV [khoảng [đếm]]
    • Lỗi mạng: sar -n EDEV [khoảng [đếm]]
Dưới đây là một ví dụ về đầu ra từ một báo cáo CPU.
# sar -u 1 5
Linux 2.6.32-100.0.19.el5 (ol5-112.localdomain)  06/27/2011

03:10:07 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
03:10:08 PM     all      0.00      1.01     23.23     75.76      0.00      0.00
03:10:09 PM     all      0.00      1.02     35.71     63.27      0.00      0.00
03:10:10 PM     all      0.98      3.92     35.29     59.80      0.00      0.00
03:10:11 PM     all      0.00      1.03     29.90     69.07      0.00      0.00
03:10:12 PM     all      0.00      2.00     35.00     63.00      0.00      0.00
Average:        all      0.20      1.81     31.85     66.13      0.00      0.00
#

MPSTAT

Báo cáo bộ xử lý thống kê liên quan.
# mpstat 10 2
Linux 2.6.32-100.0.19.el5 (ol5-112.localdomain)  06/27/2011

01:59:57 PM  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
02:00:07 PM  all    1.21    0.00    0.90    0.20    0.00    0.00    0.00   97.69    980.50
02:00:17 PM  all    0.70    0.00    0.40    0.00    0.00    0.10    0.00   98.79    973.77
Average:     all    0.95    0.00    0.65    0.10    0.00    0.05    0.00   98.24    977.14
#

ẨN MẬT KHẨU

Bạn có thể được yêu cầu sử dụng mật khẩu trong các tập lệnh gọi các công cụ của Oracle, như SQL * Plus, Xuất / Nhập và RMAN, v.v. Một phương pháp để xóa thông tin đăng nhập khỏi chính tập lệnh là tạo tệp thông tin xác thực để giữ chúng. Trong trường hợp này, tôi đang sử dụng "/home/oracle/.scottcred", có chứa phần sau đây.
scott/tiger
Thay đổi quyền để đảm bảo tệp chỉ hiển thị cho chủ sở hữu.
$ chmod 600 /home/oracle/.scottcred
Bây giờ thay thế các tham chiếu đến thông tin đăng nhập bằng nội dung của tệp.
$ expdp </home/oracle/.scottcred schemas = thư mục SCOTT = DATA_PUMP_DIR dumpfile = SCOTT.dmp logfile = expdpSCOTT.log


TẬP LỆNH KHỞI ĐỘNG TỰ ĐỘNG TRÊN LINUX

CRON
Có hai phương pháp chỉnh sửa tập tin crontab. Trước tiên, bạn có thể sử dụng tùy chọn "crontab -l> filename" để liệt kê nội dung và dẫn nội dung này vào một tệp. Khi bạn đã chỉnh sửa tệp, bạn có thể áp dụng tệp đó bằng "tên tệp crontab".
  • Đăng nhập bằng root
  • crontab -l> newcron
  • Chỉnh sửa tập tin newcron.
  • crontab newcron
Ngoài ra, bạn có thể sử dụng tùy chọn "crontab -e" để chỉnh sửa trực tiếp tệp crontab.
Các mục có các yếu tố sau.
field          allowed values
-----          --------------
minute         0-59
hour           0-23
day of month   1-31
month          1-12
day of week    0-7 (both 0 and 7 are Sunday)
user           Valid OS user
command        Valid command or script.
5 trường đầu tiên có thể được chỉ định bằng cách sử dụng các quy tắc sau.
*        - Tất cả các giá trị khả dụng hoặc "đầu tiên cuối cùng".
3-4      - Một phạm vi duy nhất đại diện cho mỗi có thể từ đầu đến cuối phạm vi bao gồm.
1,2,5,6  - Một danh sách cụ thể của các giá trị.
1-3,5-8  - Một danh sách cụ thể của phạm vi.
0-23/2   - Mọi giá trị khác trong phạm vi được chỉ định.
Mục sau đây chạy một kịch bản dọn dẹp vào 01:00 mỗi Chủ nhật. Bất kỳ đầu ra hoặc lỗi từ tập lệnh đều được chuyển đến / dev / null để ngăn chặn sự tích tụ của thư đến root.
# crontab -e
0 1 * * 0 /u01/app/oracle/dba/weekly_cleanup > /dev/null 2>&1
# crontab -l

JOB CRON CỤM TRÊN TRU64

Trên hệ thống cụm cron là nốt cụ thể. Nếu bạn cần một công việc để bắn một lần trên mỗi cụm, thay vì một lần cho mỗi nút, bạn cần một cách tiếp cận khác cho công việc định kỳ tiêu chuẩn. Một cách tiếp cận được đưa ra trong tài liệu thực hành tốt nhất của HP ( Sử dụng cron trong Cụm máy chủ TruCluster ), nhưng theo tôi, một giải pháp thanh lịch hơn được đề xuất bởi Jason Orendorf của Nhóm doanh nghiệp HP Tru64 Unix ( TruCluster Clustercron ).
Trong giải pháp của mình, Jason tạo ra một tệp có tên / bin / cronrun với các nội dung sau.
#!/bin/ksh
set -- $(/usr/sbin/cfsmgr -F raw /)
shift 12
[[ "$1" = "$(/bin/hostname -s)" ]] && exit 0
exit 1
Kịch bản lệnh này chỉ trả về TRUE (0) trên nút là CFS phục vụ cluster_root.
Tất cả các công việc toàn cụm nên có một mục crontab trên mỗi nút của cụm như thế nào.
5 * * * /bin/cronrun && /usr/local/bin/myjob
Mặc dù công việc cron bắn vào tất cả các nút, phần "/ bin / cronrun &&" của mục nhập ngăn tập lệnh chạy trên tất cả các nút trừ CFS hiện đang phục vụ cluster_root.

NFS MOUNT (SUN)

Các deamon sau đây phải được chạy để chia sẻ cho PC.
  • /usr/lib/nfs/nfsd -a
  • /usr/lib/nfs/mountd
  • /opt/SUNWpcnfs/sbin/rpc.pcnfsd
Để xem danh sách các ổ đĩa được gắn nfs đã có loại.
exportfs
Đầu tiên, điểm gắn kết phải được chia sẻ để có thể nhìn thấy bằng máy từ xa.
share -F nfs -o ro /cdrom
Tiếp theo chia sẻ có thể được gắn trên một máy từ xa bằng cách sử dụng root .
mkdir /cdrom#1
mount -o ro myhost:/cdrom /cdrom#1

NFS MOUNT (TRU64)

Trên máy chủ, nếu NFS hiện không được thiết lập, hãy làm như sau.
  • Trình quản lý ứng dụng -> Quản trị hệ thống -> Cấu hình -> NFS
  • Chọn tùy chọn "Cấu hình hệ thống làm máy chủ NFS".
  • Chấp nhận mọi mặc định.
Tạo thư mục điểm gắn kết.
mkdir /u04/backup
Nối các mục sau vào tệp "/ etc / export".
/u04/backup
Hãy chắc chắn rằng các quyền chính xác được cấp trên thư mục.
chmod -R 777 /u04/backup
Trên máy khách, nếu NFS hiện không được thiết lập, hãy làm như sau.
  • Trình quản lý ứng dụng -> Quản trị hệ thống -> Cấu hình -> NFS
  • Chọn tùy chọn "Cấu hình hệ thống dưới dạng máy khách NFS".
  • Chấp nhận mọi mặc định.
Tạo thư mục điểm gắn kết.
mkdir /backup
Nối một mục sau vào tệp "/ etc / fstab".
nfs-server-name:/u04/backup     /backup         nfs rw,bg,intr 0 0
Cuối cùng, gắn (mount) tập tin.
mount /backup
Tại thời điểm này, bạn có thể bắt đầu sử dụng điểm gắn kết từ máy khách của mình. 

NÚI SAMBA / CIFS (LINUX)

Xem cấu hình Linux Samba .
Tạo một thư mục để sử dụng cho điểm gắn kết.
# mkdir /host
Thêm dòng sau vào tệp "/ etc / fstab".
//192.168.0.4/public /host   cifs rw,credentials=/root/.smbcred,uid=500,guid=500 0 0
Tạo một tệp có tên "/root/.smbcred" với các nội dung sau.
username=myuser
password=mypassword
Thay đổi quyền trên tệp thông tin đăng nhập.
# chmod 600 /root/.smbcred
Gắn kết (mount) chia sẻ.
# mount /host

CẤU HÌNH PC XSTATION

Tải xuống CygWin setup.exe từ http://www.cygwin.com .
Cài đặt, đảm bảo chọn tất cả các gói tùy chọn X11R6 (hoặc XFree86 trong các phiên bản cũ hơn).
Nếu bạn cần quyền truy cập root, hãy thêm mục sau vào tệp / etc / securettys trên mỗi máy chủ.
<client-name>:0
Từ lệnh quảng bá trên PC làm như sau.
set PATH=PATH;c:cygwinbin;c:cygwinusrX11R6bin
XWin.exe :0 -query <server-name>
Môi trường X sẽ bắt đầu trong một cửa sổ mới.
Nhiều bản phân phối Linux không khởi động XDMCP theo mặc định. Để cho phép truy cập XDMCP từ Cygwin chỉnh sửa tệp "/etc/X11/gdm/gdm.conf". Trong phần "[xdmcp]", đặt "Bật = đúng".
Nếu bạn đang bắt đầu bất kỳ ứng dụng X nào trong phiên, bạn sẽ cần đặt biến môi trường HIỂN THỊ. Hãy nhớ rằng, bạn đang hoạt động như một XStation chứ không phải chính máy chủ, vì vậy biến này phải được đặt như sau.
DISPLAY=<client-name>:0.0; export DISPLAY

XAUTH (MAGIC COOKIE)

Truy cập vào máy chủ X có thể bị hỏng khi sử dụng suvà sudora lệnh. Các xauthlệnh cung cấp một giải pháp này. Quá trình này bao gồm các giai đoạn sau:
  • Kiểm tra số hiển thị hiện tại của bạn.
  • Sử dụng xauth list để có được một danh sách các cookie ma thuật.
  • Chuyển sang người dùng mới.
  • Sử dụng xauth addđể đặt cookie ma thuật cho số hiển thị của bạn.
Một ví dụ về điều này được hiển thị dưới đây.
$ echo $DISPLAY
localhost:12.0
$ xauth list
ol6.localdomain/unix:12  MIT-MAGIC-COOKIE-1  be64852468ca3c334720b10bb3c4d3cb
$ sudo su oracle
$ xauth add ol6.localdomain/unix:12  MIT-MAGIC-COOKIE-1  be64852468ca3c334720b10bb3c4d3cb
Bây giờ bạn sẽ có thể truy cập máy chủ X, giống như bạn có thể trước khi chuyển đổi người dùng.

CÀI ĐẶT PROFILE HỮU ÍCH

 /etc/profile: Là profile mức system ảnh hưởng đến toàn bộ các user
Mỗi user có profile riêng:
# ls -al /etc/skel
total 36
drwxr-xr-x.   4 root root  4096 Feb 25 14:11 .
drwxr-xr-x. 113 root root 12288 Mar  1 14:38 ..
-rw-r--r--.   1 root root    18 Mar 29  2011 .bash_logout
-rw-r--r--.   1 root root   176 Mar 29  2011 .bash_profile
-rw-r--r--.   1 root root   124 Mar 29  2011 .bashrc
drwxr-xr-x.   2 root root  4096 Nov 20  2010 .gnome2
drwxr-xr-x.   4 root root  4096 Feb 25 14:06 .mozilla
# 

Trong đó file .bash_profile" cho user oracle có dạng:

ORACLE_SID=ORCL; export ORACLE_SID
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH; export PATH

TẬP TIN HỮU ÍCH

Dưới đây là một số tập tin có thể được sử dụng.
Con đườngNội dung
/etc/passwdThiết lập người dùng
/etc/groupCài đặt nhóm cho người dùng.
/etc/hostThông tin tra cứu tên máy chủ.
/etc/systemThông số hạt nhân cho Solaris.
/etc/sysconfigtabCác tham số kernel cho Tru64.
/etc/sysctl.confCác tham số kernel cho Linux.
Để biết thêm thông tin xem:
@ Trần Văn Bình - Founder of "Oracle DBA Việt Nam" #OracleTutorial #OracleDBA #OracleDatabaseAdministration #học oracle database #oca #ocp #oce #ocm

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master