將Click-Me imgur的圖片下載
#!/bin/bash
cat 'temp.txt' | while read line
do
temp=$(echo $line | sed 's/^M//')
index=$(echo $temp | awk -F "," '{ print $1 }')
content=$(echo $temp | awk -F "," '{ print $2 }')
picture=$(echo $temp | awk -F "," '{ print $3 }')
flag=$(echo $temp | awk -F "," '{ print $4 }')
#如果等於1 就建一個資料夾
if [ ! -d /var/www/html/imgbackup/image/$index ]; then
mkdir ./image/$index
fi
wget -t0 -O ./image/$index/$picture.jpg $content
echo "現在進行到-$index"
done
2013年3月18日 星期一
2013年3月12日 星期二
web禁止存取.git資料夾 (apache git folder deny)
『環境』
CentOS 6.x , apache
===========================================
有時候你可能需要在web資料夾下使用git來拿取網頁資料
於是你會多了一個.git的資料夾,並且裡面有很多檔案
但是又希望別人不能存取這個資料夾底下的東西
解決方法
vim /etc/httpd/conf.d/git_deny.conf
(新增一個設定檔)
加入
<DirectoryMatch "^/.*/\.git/">
Order allow,deny
deny from all
</DirectoryMatch>
然後再重新啟動httpd即可
CentOS 6.x , apache
===========================================
有時候你可能需要在web資料夾下使用git來拿取網頁資料
於是你會多了一個.git的資料夾,並且裡面有很多檔案
但是又希望別人不能存取這個資料夾底下的東西
解決方法
vim /etc/httpd/conf.d/git_deny.conf
(新增一個設定檔)
加入
<DirectoryMatch "^/.*/\.git/">
Order allow,deny
deny from all
</DirectoryMatch>
然後再重新啟動httpd即可
2013年3月11日 星期一
實作git server更新多台server
Git
Q:什麼是Repository?
Ans:就是倉庫的意思
Q:需要做哪些基礎設定?
Ans:
git config --global user.name "Tsung" git config --global user.email "username@email.com" git config --global color.diff auto # git diff 要顯示顏色 git config --global color.status auto # git status 要顯示顏色 git config --global color.branch auto git config --global color.log auto # git log --graph 會很漂亮, 感謝日落提供. git config --global core.excludesfile ~/.gitignore # 設置忽略名單
相關連結
Git官網 - http://git-scm.com/
GitHub官網 - https://github.com/
Git 初學筆記 - 指令操作教學 - http://blog.longwin.com.tw/2009/05/git-learn-initial-command-2009/
Git Study - http://josephj.com/entry.php?id=308
下載git軟體 yum install git
(如有需要) 下載gitk軟體(以圖表方式顯示) yum install gitk
「server端」
- useradd git #新增git帳號
- cd /home/git/project #切換到git目錄底下的project資料夾
- git init --bare (單純repository)
- 無法在此新增檔案,只單純用在repository
「client端」
- useradd git #新增git帳號
- cd /home/git/ #切換到git目錄
- git clone git@192.168.10.130:/home/git/project #將server端的資料複製到client端
- vim test.php #新增檔案
- git add . #加入檔案
- git commit -m 'this is a test file.' #commit檔案
- git pull #更新server端資料
- git push # 將檔案上傳上去
- git status #查詢git狀況
注意事項:
- chown -R git:git /home/git/project #更改檔案目錄擁有者及群組為git
- git config receive.denyCurrentBranch ignore #發生錯誤,忽略server端的master
後面要加入的 re.local 以及新增機器自動判斷是否已有.git 及 拉檔案 新增排程。
# git clone 的時候會顯示資料夾是空的。
#必須新增檔案 vim test.php; git add .; git commit -a "this is a first file."; 才能push and pull
# 第一次push的時候要下 git push git@192.168.10.130:/var/www/html/project master
#
git.script
if [ -d /var/www/html/project/.git ] ; then
echo "project存在,git資料夾有存在,開始更新網站內容。"
cd /var/www/html/project
git pull
else
echo "資料夾不存在,建立網站資料"
rm -rf /var/www/html/project
cd /var/www/html/
git clone git@192.168.10.130:/var/www/html/project
exit 0
fi
service httpd start
push.script
cd /var/www/html/project
git push
#編輯排程
crontab -e
*/1 * * * * /var/www/html/pull.script #每1分鐘執行一次。
# git clone 的時候會顯示資料夾是空的。
#必須新增檔案 vim test.php; git add .; git commit -a "this is a first file."; 才能push and pull
# 第一次push的時候要下 git push git@192.168.10.130:/var/www/html/project master
#
git.script
if [ -d /var/www/html/project/.git ] ; then
echo "project存在,git資料夾有存在,開始更新網站內容。"
cd /var/www/html/project
git pull
else
echo "資料夾不存在,建立網站資料"
rm -rf /var/www/html/project
cd /var/www/html/
git clone git@192.168.10.130:/var/www/html/project
exit 0
fi
service httpd start
push.script
cd /var/www/html/project
git push
#編輯排程
crontab -e
*/1 * * * * /var/www/html/pull.script #每1分鐘執行一次。
2013年3月7日 星期四
CentOS 指令大全
CentOS 指令大全
yum install php mysql mysql-server
chkconfig httpd on # 開機啟動
chkconfig mysqld on # 開機啟動
ps aux | grep httpd #查詢httpd是否正在執行。
chkconfig --list #列出現在的服務狀態。
chkconfig --level 345 httpd on #r將httpd服務在level 3.4.5 開啟。
讓開啟可以執行root權限的指令
Defaults:nobody !requiretty
管理防火牆 iptables
iptables-save #查看防火牆狀況。
iptables -F #刪除防火牆規則,只保留前三項。
vim /etc/sysconfig/iptables # 修改防火牆規則。
iptables-restore /etc/sysconfig/iptables #載入防火牆規則至設定。
yum install php mysql mysql-server
chkconfig httpd on # 開機啟動
chkconfig mysqld on # 開機啟動
ps aux | grep httpd #查詢httpd是否正在執行。
chkconfig --list #列出現在的服務狀態。
chkconfig --level 345 httpd on #r將httpd服務在level 3.4.5 開啟。
讓開啟可以執行root權限的指令
Defaults:nobody !requiretty
管理防火牆 iptables
iptables-save #查看防火牆狀況。
iptables -F #刪除防火牆規則,只保留前三項。
vim /etc/sysconfig/iptables # 修改防火牆規則。
iptables-restore /etc/sysconfig/iptables #載入防火牆規則至設定。
2013年3月5日 星期二
CentOS 實作SSH連線
實作過程:
- 以一個使用者(asami)的身分產生密鑰在/home/asami/.ssh/底下 (/ssh-keygen -t rsa)
- id_rsa id_rsa.pub
- 將密鑰灌進去 authorized_keys (cat id_rsa.pub >> authorized_keys) =>灌公鑰進去。
- 然後chmod 400 authorized_keys,稍微保護一下。
- 設定sshd_config (vim /etc/ssh/sshd_config)
/etc/ssh/sshd_config
Protocol 2
ServerKeyBits 1024
PermitRootLogin no # 禁止root登錄。
#以下三行沒什麼要改的,把默認的#註釋去掉就行了
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no # 如果不用key登入,一定要設yes,KEY與密碼一定要二選一
PermitEmptyPasswords no # 禁止使用空密碼登入 - 重啓sshd (/sbin/service sshd restart)
- 下載使用Puttygen,load id_rsa檔案,轉換另存private key。id_rsa -> id.rsa.ppk 。(亞馬遜pem -> ppk)filezilla 也要轉ppk遇到Puttygen不能使用,將檔案及Puttygen丟在D槽解決。
無法登入原因,可能是你把KEY驗證開啟,又開啟不用密碼驗證。PasswordAuthentication no改爲PasswordAuthentication yes
service sshd restart - 下指令執行囉。 ssh -i id_rsa root@192.168.10.130 #用root登入遠端。(選擇私鑰~)
- /etc/hosts.allow and hosts.deny 可加入IP防止使用SSH連線。 #sshd 192.168.10.134
觀念提醒:
- server 端用 public key,client 端用 private key
- key傳的方式mail or filezilla的方式傳輸
- pem, id_rsa 利用 puttygen 轉 .ppk
- .ssh的資料夾權限務必設成755
- id_rsa.pub and authorized_keys 設成644
- id_rsa 權限設成600
- 用戶目錄權限設成755 or 700
訂閱:
文章 (Atom)