2014年4月11日 星期五

Linux ACL permission

  /acl/dir                                                                  touch test permission

  user:: rwx                         file  default permission 666   rw-
 group:: r-x                          dir  default permission 777
 other:: r-x

 default:user:: rwx                   default permission  rw-                         user:: rw-
 default:other:: r-x                   default permission  rw-                         other:: r--
 default:mask:: rwx                  default permission  rw-                         mask:: rw-

                                                                 rwx
 default:user:john: rwx               修正後  ACL mask   rw-       rw-       user:john: rw-  
                                                                -------
                                                                 rw-
                                                                  
                                                                 r-x
 default:group:: r-x                  修正後  ACL mask   rw-       rw-         group:: r--
                                                                ------

                                                                 r--

2014年4月8日 星期二

XCOPY 備份資料


需求目的:備份整個D槽所有資料,但是排除某一指定目錄下的所有資料

解決方式:使用XCOPY配合參數

(1) /E 複製每個目錄及其包含的子目錄,也複製空目錄
(2) /H 複製隱藏檔和系統檔
(3) /Y 不要提示您確認是否要覆蓋一個已經存在的檔案
(4) /D  m-d-y 複製在指定日期當天或之後發生變更的檔案。如果沒有給日期,只複製那些來源檔案日期比目的檔案日期為新的檔案
(5) /EXCLUDE 排定排除清單,可指定特定資料夾、檔案或指定副檔名 (可以建一個txt檔建立所有要排除的清單)


新增一個批次檔內容如下:

XCOPY /E /D /H /Y  /exclude:uncopy.txt  "D:\*.*"  "G:\SUN_D"
                                                                 ↑來源位置       ↑備份位置
pause
↑可以確認複製的檔案數量


PS:
1.備份的來源位置或是備份位置路徑有空白, 前後兩頭要使用"  "雙引號 ,如果沒有空白就不需要。
2.如果要備份整個D槽時,路經後面請加 *.* "D:\*.*"否則備份位置會變成隱藏檔,因為會複製到D槽本身的隱藏屬性。
3.出現(F = 檔案,D = 目錄)?表示備份位置找不到指 定的目錄,是否要新增。參數 / I 可以強制新增指定好名稱的目錄。


再建立一個排除清單的 TXT 文件,檔名為 uncopy.txt內容如下:

\RECYCLER\  ←排除作業系統的隱藏檔
\System Volume Information\  ←排除作業系統的隱藏檔
\PG15\DBF\  ←想要排除的目錄


最後將這個批次檔和uncopy.txt放在一起執行即可!


參考資料:http://blog.xuite.net/geniusn/note/23725786-%E5%88%A9%E7%94%A8Xcopy%E4%BD%9C%E7%B0%A1%E6%98%93%E8%B3%87%E6%96%99%E5%82%99%E4%BB%BD  其它參數介紹

2014年4月2日 星期三

自動更新客戶藥庫


新增一個批次檔,檔名為 更新藥庫.bat 內容如下:

@echo off
cls
echo.
echo 健保公告藥庫更新中.....
echo.
echo 請勿開啟健保IC卡系統!!
echo.
echo 請稍後.....謝謝!!

7z x C:\PilotFTPDownload\Publish.7z     -y
7z x C:\PilotFTPDownload\Publish.zip    -y
7z x C:\PilotFTPDownload\Publish.rar    -y

call Del_Temp_Publish.bat

再新增一個批次檔,檔名必為 Del_Temp_Publish.bat 內容如下:

@echo off
cls
echo.

del /F /S C:\PilotFTPDownload\Publish.7z
del /F /S C:\PilotFTPDownload\Publish.zip
del /F /S C:\PilotFTPDownload\Publish.rar

echo.
echo 更新完成!!
echo.
echo 請按任意鍵關閉此視窗......
echo.
echo 並且可以開始執行您的健保IC卡系統,謝謝!!
echo.
Pause

將 7z.exe 和所有次檔放D:\Studio\PilotData\Publish後執行更新藥庫.bat即可!

同時自動刪除來源C:\PilotFTPDownload\目錄裡所有Publish.7z、Publish.zip、Publish.rar。

PS:Windows下請安裝 7z.exe 視窗版執行檔,才能正常運作!



批次解壓指定目錄


需求目的:
在D:\Studio\PilotData的路徑下裡面有許多不同代碼的資料夾,各個不同代碼的資料夾內含有各自資料夾的壓縮檔(zip)資料,裡面的檔案被以樹狀目錄的方式壓縮著,解完壓縮以後檔案會被許多層資料夾以原樹狀路徑的方式包覆著,不會自動丟到指定的目錄下,必需找到一個大量解壓不同目錄的壓縮指令,同時能將檔案按照樹狀目錄的路徑放回指定目錄,最後刪除來源的壓縮檔(zip)。

解決方式:使用7zip指令 
(1) 7z X ←可以以完整路徑的格式解出檔案
(2) -y ←解壓縮檔案存在覆蓋不詢問

新增一個批次檔,檔名為 解壓院所MDB.bat 內容如下:

7z X D:\Studio\PilotData\2731280016\*.zip -y
7z X D:\Studio\PilotData\3501010272\*.zip -y
7z X D:\Studio\PilotData\3501010370\*.zip -y
                                               ↑視需求增加需要的指定目錄      
                           
call DelTempZip.bat


再新增一個批次檔,檔名必為 DelTempZip.bat 內容如下:

del /F /S D:\Studio\PilotData\*.zip


將 7z.exe 和所有批次檔放D:槽後執行解壓院所MDB.bat即可!

PS:Windows下請安裝 7z.exe 視窗版執行檔,才能正常運作!







因為客戶資料已經樹狀目錄方式壓縮,所以以此批次檔執行便可自動解壓至原指定目錄,並且刪除來源zip檔。

參考資料:http://felixx.pixnet.net/blog/post/36966417-7-zip%E7%9A%84%E5%91%BD%E4%BB%A4%E5%88%97%E6%8C%87%E4%BB%A4

↑ 7zip其它參數說明