2014/08/03

linux學習日誌



新安裝centos記得網路要設定為自動加入,不然網路卡會顯示停用



常用指令

pwd 列出目前所在的路徑

-r 反向排序

-t 根據時間排序

cd - 上一個目錄

lsattr 檢視檔案屬性(是否有不可刪除)



cp -a 保留原來屬性

df -h 以G顯示硬碟使用量

du -h 以G顯示資料夾使用空間

tail -f 持續更新顯示tail資料

diff f1 f2 列出f1 f2兩個檔案不同的地

sort排序

grep擷取有特定字元的行

>生成檔案

>>新增字元到檔案結尾


vi

:se nu = set nu =set number

全部批次取代字元 %s/patten/string/cgi

取代1-8行 1,8 s/patten/string/cgi

u復原





RPM

查詢/bin/bash是屬於哪個套件

rpm –qf /bin/bash





tar

v代表可見

f生成檔案

c打包

x解開

z壓縮

打包檔案 tar cvf file.tar 目標

打包並壓縮檔案 tar zcvf file.tar.gz 目標

解開檔案 tar xvf 檔案

解壓縮檔案 tar zxvf 檔案


開啟防火牆

setup 開好後

檢查/etc/sysconfig/iptables跟/etc/sysconfig/ip6tables




確認服務開啟狀態
chkconfig --list

只看特定服務httpd

chkconfig --list | grep httpd

開機啟動服務httpd

Chkconfig httpd on


程式別名

alias ls='ls -l'

alias df='df -h'

改完後要加入到/root/.bashrc

vi /root/.bashrc



排序sort

預設根據字首排序

要照第三個欄位排序

sort –k 3 檔案


丟給下一個程式
用 | 符號分隔



grep 擷取特定字串的該行

grep 關鍵字

grep ^[a-c] 擷取首欄有abc開頭的

grep ^[abd] 擷取首欄有a,b,d開頭的

grep ^a.a 擷取a開頭且有另外一個a的



檢查現在版本

#cat /etc/redhat-release





shell

執行批次檔案有兩種方式

第一種是把程式改成700

chmod 700檔名,然後

./檔名

就可以執行

或直接用這個指令

sh檔名



刪除使用者

userdel –r user (可以連使用者家目錄一起砍)



網路指令

ifconfig eth0 up 可以把網卡啟用(要本機操作)

netstat –i | more 看網路封包狀況

-n -a

uname –a 系統資訊

dmesg | more 開機資訊

top CPU使用量

ps ax 列出所有執行程序 例如 ps ax | grep httpd

kill -9 pid 砍掉某個程序

cp /dev/null 拷貝空值(清空資料)





禁止特定使用者登入SSH

修改PS檔案

vi /etc/passwd

把不要登入的帳號後面的/bin/bash改成/bin/任意字元如/bin/nologin





駭客入侵跡象

會把/root/.bash_history(指令紀錄)清空

把/var/log/secure清空

crontab -e會多出很多東西



駭客入侵要重新安裝

yum reinstall procps -y (/bin/ps)

yum reinstall net-tools -y (/bin/netstat)

yum reinstall openssh-server -y



用top看占掉的資源誰最高

用ps ax看有哪些多出來的pid



刪除不掉檔案要把唯讀拿掉
例如/etc/cupsdd這個檔案

chattr -i /etc/cupsdd

rm /etc/cupsdd –rf

rm /etc/cupsddh




kill -9 pid





awk
awk 把資料根據欄位加以擷取的指令

語法 awk ‘{ print $n “字串”}’檔案

例如awk ‘{ print $3 “+”$2 “+” $1}’

例如要殺掉特定程序httpd

ps ax | grep httpd | awk '{print "kill -9 " $1}' | sh

(要加上後面的sh 才會執行)



分隔符號不是空白的時候要用大寫F指定

awk –F: ‘{print $3 }’

例如要看passwd所有人的uid

awk -F: '{print $3 "=" $1}' /etc/passwd | sort





如果把檔案存成awk檔

像是這樣

{print $3}

{print $2}



就可以不用再打指令批次執行

語法

awk –f 檔案

awk –f 檔案 | sh (確定要執行)



quota

設定home要加入quota

vi /etc/fstab



找到home這行

/dev/mapper/xxx-lv_home /home ext4 defaults 1 2

改成

/dev/mapper/xxx-lv_home /home ext4 defaults, usrquota 1 2

就是在defaults後面加上,usrquota

然後用more /etc/mtab指令先看一下



然後

umount /home

mount /home

or mount -o remount /home



不開機啟用quota

quotaon -avug



編輯使用者quota

edquota username

soft會寄信通知

hard是實體

單位是k,100000=100M

複製使用者quota設定

edquota –p 範本使用者 *

要注意要在home底下有範本使用者資料夾下這個指令



Logical Volume Manager



vgs 顯示現在的虛擬邏輯磁區群組

vgdisplay 顯示更詳細資料



lvs顯示現有邏輯磁區

lvdisplay顯示更詳細資料




如何增加硬碟分割區容量

df

拿到home的dev名字

例如

/dev/mapper/vg_centos19-lv_home





增加home大小

lvextend -L +容量 /dev/home name

lvextend -L +100m /dev/mapper/vg_centos19-lv_home



生效

resize2fs /dev/home name

resize2fs /dev/mapper/vg_centos19-lv_home



可以再用df檢查



Squid



安裝

yum install squid –y



到setup把3128 port打開






更改設定檔案

vi /etc/squid/squid.conf



增加本地的ip

acl localnet src 163.17.233.0/24 # 頭家



要修改proxy容量

#cache_dir ufs /var/spool/squid 100 16 256

把這行的#拿掉

把100Mb改成 你要的





要阻擋網址關鍵字



例如設定game這組關鍵字(包含 facebook sex game )

acl game url_regex facebook sex game



阻擋剛剛設定的game

http_access deny game


設定開機啟動

chkconfig squid on



sarg
可以記錄squid的流量
安裝

wget http://www.cses.tc.edu.tw/study/squid/sarg-2.3.1-1.el6.test.x86_64.rpm



rpm -Uvh sarg-2.3.1-1.el6.test.x86_64.rpm


修改bug
vi /etc/sarg/sarg.conf
把font路徑修正
graph_font /etc/sarg/fonts/DejaVuSans.ttf

存檔
執行
sarg



把網頁改成除了本機之外區網可看

vi /etc/httpd/conf.d/sarg.conf

加入Allow from 163.17.208.0/24

存檔

service httpd restart


就可以上網看結果了



/etc/httpd/conf.d/底下的*.conf會被自動載入
所以alias可以不用放在httpd.conf裡面
可以另外建立一個檔案



Samba

安裝yum install smb –y

防火牆打開 setup

服務啟動 service smb restart

自動開啟 chkconfig smb on

檢查chkconfig –list



設定public目錄

vi /etc/samba/smb.conf

把 [public]這塊的;拿掉

目錄可以指定特定帳號

重新啟動服務service smb restart




ACL設定權限

vi /etc/fstab

在home加上acl

/dev/mapper/vg_centos19-lv_home /home ext4 defaults,usrquota,acl 1 2

重新掛載

mount -o remount /home/


設定user群組可以讀寫samba資料夾

setfacl -m g:users:rwx /home/samba


移除權限

setfacl -x g:users /home/samba



限制使用者不能刪除他人的檔案

chmod 1775 資料夾



檢查設定

testparm -v | more



修改編碼

vi /etc/samba/smb.conf

在[global最後面加上]

dos charset = CP950

存檔

service smb restart


Webmin
安裝WEBMIN

rpm -Uvh http://www.cses.tc.edu.tw/study/webmin/webmin-1.690-1.noarch.rpm



setup修改防火牆把10000打開

service iptables restart

service ip6tables restart



連線進入



學務系統安裝注意事項

不要預設編碼

vi /etc/httpd/conf/httpd.conf

把AddDefaultCharset UTF-8前面加上#

存檔



修改php.ini設定

vi /etc/php.ini



max_execution_time = 300
memory_limit = 128M
error_reporting = E_ALL改為E_ALL & ~E_NOTICE
magic_quotes_gpc = Off 改為 On
upload_max_filesize = 2M → 10M
post_max_size = 8M → 20M
short_open_tag =Off改為 On



確認 register_globals = Off 


存檔

sevice httpd restart



安裝XOOPS& Joomla

把檔案改給Apache

chown apache.apache * -R



新增硬碟

fdisk /dev/sdb


p 顯示分割狀態

n 新增分割區

結束記得要w寫入

轉換成PV


先用pvs檢查

pvcreate /dev/sdb1

pvcreate /dev/sdb2

再用pvs確認


加入群組

vgextend vgname /dev/sdb1


再用vgs跟pvs檢查即可



新增lv

語法lvcreate -L 磁碟大小 -n lvname vgname


範例lvcreate -L 4G -n lv_students vgname


去home底下新增學生的資料夾

mkdir /home/students


格式化

mkfs.ext4 /dev/vgname/lvname

mkfs.ext4 /dev/vg_centos19/lv_students


掛載

mount /dev/vg name/lv name /home/資料夾

mount /dev/vg_centos19/lv_students /home/students


檢查

df –h

開機自動掛載

先df

拿到完整路徑/dev/mapper/vg_centos19-lv_students



vi /etc/fstab

把這行加進去

路徑 掛載目標 格式 條件

/dev/mapper/vg_centos19-lv_students /home/students ext4 defaults,usrquota,acl 1 2


存檔

重新mount

mount -o remount -a /dev/mapper/名稱

mount -o remount -a /dev/mapper/vg_centos19-lv_students


把原來在/home/2014的資料夾搬家到/home/students

mv 2014/ students/

修改家目錄檔案

vi /etc/passwd

批次取代2014變成students/2014

%s/2014/students\/2014/cgi



Rsync

備份

rsync -avl 來源目錄 目的目錄

rsync -avl 163.17.208.219:/home/ /home/

rsync -avl 163.17.208.219:/etc/ /root/etc



建立信任連線

產生key

ssh-keygen -d

都enter就可以了

把信任檔案利用scp傳過去

scp /root/.ssh/id_dsa.pub 163.17.208.219:/root/.ssh/authorized_keys





同一台如果要接受地另外一台主機的信任連線

就不能直接覆蓋authorized_keys

這時候可以一樣先丟,但是檔名改一下

例如

scp /root/.ssh/id_dsa.pub 163.17.208.219:/root/.ssh/authorized_keys2

然後去163.17.208.219這一台下這樣的指令

cat /root/.ssh/authorized_keys2 >> /root/.ssh/authorized_keys

就會把資料加入結尾了



大量授權

在dns加入這行

_vlmcs._tcp.tjes.tc.edu.tw. 90000 IN SRV 0 0 1688 kms.tc.edu.tw.


沒有留言:

張貼留言