Quickly delete tons of files in Linux
Ref: [SteveKamerman.com]deleting-tons-of-files-in-linux-argument-list-too-long
6:36:00 PM | Filed Under linux | 0 Comments
Transfer text file between Windows and Linux
最近遇到的問題,普通的.txt檔案在windows上跟在linux上看起來沒什麼差別,但是事實上如果用HEX mode或是用Notepad++顯示所有字元,就會注意到差別! 換行字元的差別!!
在ASCII字元表裡的10( LF , line feed), 13(CR, carriage return)都有換行的作用,看到一篇文章裡有稍微解說:
Mac OS X開始是用LF,較舊的版本是用CR
Unix系統下,是用LF
愛搞怪的窗戶是用CRLF...
當我透過FTP把檔案從windows丟到linux上之後,每行資料最後的換行符號都從CRLF變成LF,整個檔案的長度就變了... 影響了程式執行的結果。於是就查了要怎麼避免這個行為,還滿簡單的,不過不知道就沒轍。
只要把FTP的傳輸模式改為binary mode即可。用command line做FTP的可以參考reference 2號,用UI的話,我是用fileZilla,在選單"傳輸>傳輸型態”裡可以選擇。就這樣,再傳一次,果然,換行符號就不會因不同系統而改變了。
ref:
3:34:00 PM | Filed Under linux, windows | 0 Comments
新手上路之: read/write NTFS driver for Linux
在進行了一個月的笨蛋異地備份方法之後,實在是受不了了...= = 用WinSCP透過網路連到linux系統去拉檔案時在是太麻煩了... 尤其單個檔案很大時,超容易失敗OTZ
其實事情好像也滿容易解決的,只是因為對方是production,時在不敢直接在上面做實驗,只好花了兩天自己裝了一台機器,在上面做測試,成功!!
Environment: enterprise linux release5(update5)+ntfs-3g-2010.5.22
- 先下載NTFS-3G
- 丟到系統內並解壓縮
- 直接進入解壓縮的資料夾內,依照文件以root身份做一下三件事情:
# ./configure
# make
# make install - 沒錯! 這個moment就已經完成安裝了
- 接著就可以接上USB硬碟,並且辨識一下他的裝置名稱。這本書說linux會把USB視為scsi裝置,所以他的device name會是/dev/sd?(視你原本系統的裝置決定,像我的系統是用IDE硬碟,裝置是hda, hdb開頭,所以第一個scsi裝置就會是sda)
- 確定好裝置名稱之後,就可以把它mount起來(以/usb為mountpoint)
# mount –t ntfs-3g /dev/sda1 /usb
- 完工!! =D
Ref:
5:18:00 PM | Filed Under linux | 0 Comments
Linux例行性工作排程by crontab
env: Red Hat Enterprise Linux 5
如果要在linux上排定一些類似檔案備份的例行性排程,可以利用crontab這指令。
step1: 準備好要下的指令,通常都會先編一個.sh file, 像這樣:
[say_hello.sh]
#!/bin/bash
echo say hello `date` >> log.txt
上面這個檔案會印一行say hello跟系統時間在log.txt這個檔案裡
像這樣: say hello Wed May 12 16:20:01 CST 2010
step2: 使用crontab排程
$ crontab -e
-e是edit的意思。下了這個指令後會進入vi編輯畫面。都未曾使用過crontab的話內容就是一片空白。
step3: 新增工作排程
crontab的內容有固定格式,一個工作一行,大概長像這樣:
20 16 * * * /home/oracle/say_hello.sh
先簡單說一下這條工作內容: 每到16:20執行say_hello.sh
指令的結構是這樣(詳細說明請參閱[鳥哥]基礎文件CH16)
| 分 | 時 | 日 | 月 | 周 | 指令 |
| 0-59 | 0-23 | 1-31 | 1-12 | 0-7 | 指令= = |
這邊要注意指令裡有用到任何檔案,都要用絕對路徑。
編輯完存檔退出後,會有一行訊息: crontab: installing new crontab
表示排程已經排定。如果要檢視所有排定的工作,可以下:
$ crontab -l
step4: 就等囉~
等到已經排定的時間,你可能會發現.... 失敗了= =,並且會收到一封mail,由root(Cron Deamon)寄出,內容最後有一行類似這樣的訊息:
/bin/sh: /home/oracle/say_hello.sh: Permission denied
permission denied… 也不知道在deny什麼鬼,因為明明可以在自己的環境裡直接下"sh /home/oracle/say_hello.sh"執行這個script。一直以為是路徑的問題(阿不就是寫完整路徑!?),改來改去就是不行。
最後發現竟然真的是權限問題,下"ls -l"可以看到新建的script檔權限長這樣:
-rw-r--r--
owner自己竟然沒權限執行.... orz||,chmod一下
$ chmod u+x /home/oracle/say_hello.sh
確認一下執行權限-rwxr--r--
再重新安排一次時間比較近的排程試試看,應該就OK囉。
linux排程初體驗,成功!!!
Ref:
10:22:00 AM | Filed Under linux | 0 Comments
