顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


文章 - dark

頁: [1] 2 3 ... 50
1
Linux 討論版 / Re: 錯誤副檔名的修正
« 於: 2017-04-13 11:19 »
看來咱們 OS 不同
您 file 一個圖檔看看 , 可能沒有 "image data" 字眼喔 ...
也或許副檔名不在第二個欄位喔 ... => awk '{print $2}' , 以空白分欄位

至於 file 跟 grep 參數 , 您可 --help 看看
小弟一般不太使用那些指令的子參數 , 大多搭配其他指令來達到要求


ps ..
您看我第一篇
試了兩種檔案才決定抓字眼跟欄位
不知道字型檔要是不小心副檔名是 jpg 會不會錯亂 ...

2
Linux 討論版 / Re: 錯誤副檔名的修正
« 於: 2017-04-13 08:15 »
find 後面要加路徑參數

for 那個欄位是放變數
您希望用正規表示式?


3
Linux 討論版 / Re: 錯誤副檔名的修正
« 於: 2017-04-11 16:48 »
剛好有
# file /all_mount/sda/tmps/png/256_01.png
/all_mount/sda/tmps/png/256_01.png: PNG image data, 256 x 256, 8-bit/color RGBA, non-interlaced
# file /all_mount/sda/tmps/png/3651/S.ico
/all_mount/sda/tmps/png/3651/S.ico: MPEG sequence


代碼: [選擇]
#name2='jpg$|jpeg$|png$|gif$'
#findf=$(find /tmp | grep -iE "$name2")

#for f in $findf ; do
#...
#done
嗯 ... 這方法不好 , 路徑檔名可能有空白
代碼: [選擇]
find /tmp | grep -iE 'jpg$|jpeg$|png$|gif$' | while read f;do
   ans=$(file "$f")

   if [ "$(echo $ans | grep 'image data')" != "" ] ; then
      # 再 grep 一次避免意外
      newname2=$(echo $ans | awk '{print $2}' | grep -iE 'jpg$|jpeg$|png$|gif$')
      # 想全小寫
      #newname2=$(echo $newname2 | sed 's/[A-Z]/\l&/g')
   fi

   if [ "$newname2" != "" ] ; then
        mv "$f" "$(echo "$f" | sed 's/\.[a-zA-Z]\{1,4\}$//')'.'$newname2" && echo ok || echo 'the same'
   else
       echo "$f"
   fi
done

4
感謝 twu2 大回覆

安裝的 iso 中 , 預設 kernel 都是 rpm
倒不知如何查詢這兩個選項是否開啟


目前雖然又不需要了
但上星期有用 centos 6.0 做了 lab
不 work 動作仍是在 ip rule add

雖然目前問題結束 , 但或許有天又會有需要
而從 centos4.4  5.5 6.0 lab 中的問題都相同
所以可能不是 "這些版本個別問題"

而事後小弟思考
小弟的做法與網路上大家的文章 , 恐怕還有一點點不同
那就是小弟都是 "單一台 client" 指向
(google 印象中 , 大家都是某網段走某條路)

小弟 lab 都砍了 , 若下次遇上 , 應會先朝這方面釐清
但若是這點 ... 那
"超舊版 redhat" 吃 netmask 32
現在版本不吃 ... 不太可能吧


5
很久沒用 iproute2 了
但印象中 , 不是每個版本 OS 中 "ip rule add" 都會實際生效

小弟剛來此論壇時 , redhat7.3 可以 (作成精簡 image 一直使用中)
而小弟的多數 OS => centos4.4  centos 5.5 都不行

不知有使用 route 分流的各位
使用 OS 都是哪些版本 ?


這能省去抓光碟+測試時間
謝謝!!

6
linux 目錄 /windows  mount 到 window 某一目錄,然後 ftp一個 "許功蓋.txt" 到 linux ,

備註:

samba-client-3.0.33-3.38.el5_8

應該是 mount 成 windows 某一槽吧 ?
應該跟 samba-client 無關吧 ?
我也有 centos5.5 的 , 已經找不到 smbclient 這指令了

改成 UTF8 是遲早的
雖然 UTF8 叫做萬國碼
但請放心 , 跟 big mom 沒有半點關係


若你想把燙手山芋留給下一任吃
你可以在 windows 上用第三方 ftp server 開 mount 過來的 D 槽
這時第三方在 windows 的 utf8 環境 , 傳出去會是 utf8

換這台上線 , 不然 20 21 指向過來 , 還要 copy 帳號密碼
或者 ftpfs 再 mount 回去


7
Linux 討論版 / 分享 watch script
« 於: 2017-03-10 23:55 »
常用 watch 指令
偏偏 watch 不能顯示中文
剛剛終於決定狠心寫一個 script

想想對 watch 的不滿 , 還有 ..
1. clear 完 , 資訊總在螢幕最上方 => 所以改最下方且不 clear
2. 過多資訊總是 head 前幾行 -> 塞指令為什麼不加 tail => 不管 ... 加個 tail
3. 因為要捕捉 ctrl-c , 第?次再看很難的 trap 指令 , 這次只瞄幾秒 , 突然覺得好簡單

這決心是聯想到上此討論 head 與 tail 中斷是誰決定
所以 script 中那行
while true ;do echo ;done | head -$maxn
算是起點吧 ...

代碼: [選擇]
#!/bin/bash
# 中文

hhelp(){
echo $(basename $0)'
-n 幾秒循環
-head 超過螢幕用 head 取樣
-tail 超過螢幕用 tail 取樣

-h|-help|--help
'
exit
}

HT=/usr/bin/head
sec=1
while [ "$1" != "" ] ; do
case $1 in
-n)
sec=$2
shift 2
;;
-head)
HT=/usr/bin/head
shift
;;
-tail)
HT=/usr/bin/tail
shift
;;
-h|-help|--help)
hhelp
;;
*)
cmd=$cmd' '$1
shift
;;
esac
done

trap 'tput cup $(tput lines) 0;echo exit;exit' 1 2 3 15

echo '-------------------------------------------------------------'
echo '執行 '$cmd' / 每 '$sec' 秒'
echo '-------------------------------------------------------------'

maxn=0
while true;do
monitor=$(tput lines)
l=$(($monitor-3))
ans=$(eval "$cmd" | $HT -$l)
n=$(echo "$ans" | wc -l)
if [ $n -ge $maxn ] ; then maxn=$n ; fi

mysc=$(($monitor-$maxn-1))

while true ;do echo ;done | head -$maxn
tput cup $mysc 0
for((i=$mysc;i<$monitor;i++));do
tput cup $i 0
tput el
done

tput cup $mysc 0
echo "$ans"
tput cup $monitor $(tput cols)
sleep $sec
tput cup $mysc 0
done


8
database 討論版 / 請問 sqlite ROWID 問題
« 於: 2017-03-03 09:40 »
因為常用 VACUUM
使得刪除行後 , 所有資料都往前靠齊

若想某筆資料插入到某一行位置
不知該麼做 ?

謝謝!!

目前重寫新 table 解決

9
您的問題很廣阿 ...

是不知取得特別字串該如何處理 ?
還是怕別人塞特別字串要預防 ?

若您是開發者 , 又是怎樣的習慣 ?
小弟連到資料庫也不曾用 query() 之類函式
都用 exec 傳 ... 沒注意分號
還多一項給人取得 root 權限的機會


10
請教您 try 成功的解法是...?
小弟的話 .. 是 .. 右鍵 -> 翻譯成中文

11
的確如 twu2 大大所說的
若走 pop imap http 等方式 , 就要有該帳號的密碼

如果朝 HA , backup 思考 ... 又會抓不該抓的帳號
root 權限 ssh 抓 mailbox 又有時間差 (抓完 MD5 改變就重抓)

既然只是不同部門 , 叫他們 relay 或 mailbasckup 過來比較方便吧

12
您是在問 sql injection 嗎 ?


13
該跳脫的字符 , 開發者都替咱們想好了

所以只要把你想要的結果塞進變數
再交給函式 "一個變數" 就行了

... 小弟也常基於方便 , 臨時 , 懶得改
在函式那些欄位拼湊字串

14
Linux 討論版 / Re: squid proxy 驗證設定請教
« 於: 2016-12-15 01:20 »
小弟不知 NTLM NCSA 是什麼
不知有沒有 IP 分享器支援 ... 會客室各放一台

不然只好用 PC , 開一層客戶用 squid (兩層)



15
Linux 討論版 / Re: 无法安装centos7
« 於: 2016-12-01 23:59 »
您的眼睛會放雷射光嗎 ?
... 螢幕上投影出你學 x-men


你原先的U盤開機 , 裡面有引導程式
這要看作者提供支援哪些OS , 哪些安裝方式而定

一般 iso 是燒成光碟
這類引導程式至少要有虛擬光碟功能 , 才能掛載 iso

這與將 iso 前幾軌開機資訊  轉成  硬碟/U盤 bootloader   不同


16
有 MS 用 cifs 最方便 ...
有時要變更沒分享的資料夾
就得用上 sshfs ... (看影片一樣不 lag)

沒用過 qnap
不過那是特別設計過的 ... 看不到他的 source code

若站在 "使用上應用" 的角度
您的需求若是認證後 , 大家可以隨意寫入
那搭配 cifs 即可 ..

將 home 透過 cifs 掛到本機 home1
nfs 就操作 home1

若有個別寫入權限
那在多個如 ldap , nis 當中介 , 放棄本機帳號方式
這時你可選擇利用 auto 機制掛 cifs 區 (但可能需偷改 mount)
或比對 samba 與 ypserver 間帳號差異 , 另寫新增帳號程式 (改變 useradd 習慣)

想法歸想法 ... 實現過程要克服不少


17
不知修改 source code 難度 , 升級版本時是否困難 ...

若依您敘述 ..
小弟會改採取再加兩台 linux 電腦 , 當作 storage 的 interface (auto mount)
一台供 M$ , 一台供 unixlike 當 client 連現介面

未必須要實體主機 (不知 chroot 能否達到)

不過若在公司環境
實體可以增加 interface
不失為高效配置

18
系統安全討論版 / Re: 咨询:网络安全
« 於: 2016-10-30 18:20 »
您貼錯版了 ...

網路安全 , 系統安全 , 資訊安全 ... 其實很難分界

由於 ARM , 嵌入式 ... 等架構
未來會越來越多不同種類的封包 , 協定出現在網路上

您似乎剛接觸
不如就從身邊容易拿到的硬體著手
了解該硬體的系統行為 , 網路行為

之後試著架設一台供他服務的 server
觀察兩者間現象

學習他人的技術手段
可能只有在 "表演" 時能加分
累積足夠 "能運用的觀念"
在看到他人不同技巧時
才能感同身受的還原他眼中的現象

程式也一樣 , 選一種學
當看到不同語言時 , 也該能思考作者邏輯

系統也是 ...
新系統 , 新語言會越來越多 ...

19
Linux 討論版 / Re: 時間_絕對秒數_心得
« 於: 2016-10-17 22:55 »
不好意思 附件舊版 date 重傳
原來 lib 壓完超過 512
必須用 7z



20
Linux 討論版 / 時間_絕對秒數_心得
« 於: 2016-10-17 22:48 »
發問過兩篇有關時間的問題
http://phorum.study-area.org/index.php/topic,71853.msg343960/topicseen.html#msg343960
http://phorum.study-area.org/index.php/topic,69998.msg340076.html#msg340076

以下整理兩篇文章的心得
將一些之前錯誤的觀念更正

若觀念中 , 還有錯誤 , 還請多多指教


一、先來結論跟文獻觀念:

GMT=Greenwich Mean Time=格林威治標準時間
太陽(天文)測量計算(倫敦)

UTC=Coordinated Universal Time=國際協調時間
原子共振頻率 (兩千年誤差一秒鐘) , 1980 起
以上兩縮寫是 "方法"

時區代號(其餘)
CST=Central Standard Time=中原標準時間
CST=GMT+8=UTC+8

PST=Pacific Standard Time=太平洋標準時間
PST=GMT-8=UTC-8


1. linux 下 : /etc/sysconfig/clock
ZONE="Asia/Taipei"
UTC=true
其中 ZONE 參數只是給人看的 。 UTC , GMT 即在此定義
而 date 參考的 "資料庫" 則是 /etc/localtime
範本在 /usr/share/zoneinfo/ (注1)

2. 絕對秒數又常被稱 unix time
=> linux 下其實不是 年-月-日 時:分:秒 在記錄 , 而是只有這個絕對秒數在跑
=> 任何時區下 date +%s 的值 , 都是相同值 => 寫資料時直接取絕對秒數即可 , 不需考慮時區

3. 台灣 = UTC+8
所以 , 台灣時間-8小時 = 地球(格林威治地點)的時間



二、 linux 指令 /bin/date
1. -u = utc (此參數很多餘) help 中是指使用 UTC , 實際作用翻譯成 "瞬間移動到倫敦"
=> date +%F_%T => 請問系統 , 現在日期時間 ?
=> date -u +%F_%T => "瞬間移動到倫敦" , 再 .. 請問系統 , 現在日期時間 ?
=> date --date="2016-10-17 21:00:00 10 min ago" +%F_%T  => 請問這時間是?
=> date -u --date="2016-10-17 21:00:00 10 min ago" +%F_%T  => "瞬間移動到倫敦" , 再請問這時間是?

2. --date (info 中提到 ago 用於計算過去時間)
=> 若只單純 -2 day 或只有 -2 hour , 這時負號不至於出錯
但在 --date="2016-10-17 10:00 -2 hour" 有指定時間時 , 使用負號會出錯


三、日光節約 , 注1 , 舊版 date , 實驗


舊版指的是 , 舊系統中找到的 : date 2.0.11 (附件) , date 4.5.3


日光節約
1945-05-01 1946-05-01 1947-05-01 1948-05-01 1949-05-01 1950-05-01 1951-05-01
1952-03-01 1953-04-01 1954-04-01 1955-04-01 1956-04-01 1957-04-01 1958-04-01
1959-04-01 1960-06-01 1961-06-01 1974-04-01 1975-04-01 1979-06-30
這些日期會出錯 :
[root@newsys]# date --date="1979-06-30" +%F
date: invalid date ‘1979-06-30’
加上 -u 則不會 (因為瞬間移動到倫敦了)
[root@newsys]# date -u --date="1979-06-30" +%F
1979-06-30

這是因為 :
[root@newsys]# for i in {1..4} ; do date --date="1979-06-29 23:59:57 $i sec" +%F_%T_%s; done
1979-06-29_23:59:58_299519998
1979-06-29_23:59:59_299519999
1979-06-30_01:00:00_299520000
1979-06-30_01:00:01_299520001
=> 1979-06-30 這天小時沒有0 , 而 --date="1979-06-30" 其實是 --date="1979-06-30 0:0:0"
=> -u 瞬間移動到倫敦才問 , 那時區的資料庫中 , 是節約其他小時的

到舊版系統中 :
[root@oldsys]# for((i=1;i<5;i++));do date --date="1980-06-29 23:59:57 $i sec" +%F_%T_%s; done
1980-06-29_23:59:58_331142398
1980-06-29_23:59:59_331142399
1980-06-30_01:00:00_331142400
1980-06-30_01:00:01_331142401
=> 修正秒數在一年後
=> 同樣是 Asia/Taipei 的資料庫 , 但 10 年前的系統 , 卻是在 "滿現象一年" 做修正
=> 此萬年曆 , 並非 "方程式" , 所以將來也會依宇宙的改變而改變


證明:
1. 將舊版 date , 複製到新版系統使用
[root@newsys]# for i in {1..4} ; do date_2.0.11/bin/date --date="1979-06-29 23:59:57 $i sec" +%F_%T_%s; done
1979-06-29_23:59:58_299519998
1979-06-29_23:59:59_299519999
1979-06-30_01:00:00_299520000
1979-06-30_01:00:01_299520001
=>相同資料庫 , 節約的小時相同

2. 在新系統中 , 改變時區資料庫
[root@newsys]# cp /usr/share/zoneinfo/America/Chicago /etc/localtime
[root@newsys]# date --date="1979-06-30" +%F_%T_%s
[root@newsys]# 1979-06-30_00:00:00_299566800

3. 舊版防呆 , 體貼設計 :
將時區還原台北
[root@newsys]# date_2.0.11/bin/date --date="1979-06-30" +%F_%T_%s
1979-06-30_01:00:00_299520000
此為 version 2.0.11 的防呆設計 , 直接跳到沒刪除節約的時間

[root@newsys]# date_2.0.11/bin/date --date="1979-06-$((30+90))" +%F_%T_%s
1979-09-28_00:00:00_307292400
舊版自動運算的體貼設計



特地找到舊版 , 因為自動運算消失後 , 曾適應一段時間 (懷念)

而小弟之前那兩篇 , 正因不了解 -u 與絕對秒數
一些主機會登入下指令的 , 就被我偷換 /bin/date 成 -u

不過舊版 date 日光節約的防呆也真的很實用

請問 :
如附件壓縮檔 , 是 32bit 系統程式 , cp 到 64 bit 可用 , /lib/ 下也沒有那兩個 lib 衝突 , 是否真不會影響原 64bit 其他程式 ?

是否有發現哪個 unix-like 64 bit 的 date 有此防呆設計 , 或有 source code 可用 ?


(附件超過 512 k , 分兩檔)
bin/date

lib/libc.so.6
lib/ld-linux.so.2

21
Linux 討論版 / Re: use strict
« 於: 2016-10-11 16:42 »
您恐怕是直接 ./這個檔案吧

這檔案第一行不是
#!/usr/bin/perl

所以應該是給人加 include 進去用的
也就是這幾行常用到 , 所以獨立成檔案引用 , 就能少打程式碼

只是巧合的是 , linux 系統中沒 use 命令 , 卻有 open 跟 while

perl 應該不可能看不懂 use 關鍵字的
(只是 .. use 能放中間嗎 ? ... 不知)

把第一行 bin/perl 的 pl 檔列出來
grep 'bin/perl' *.pl
試著執行看看那些檔案吧

22
雜七雜八 / Re: 請問絕對秒數 unix time
« 於: 2016-10-11 16:23 »
的確各機器時區沒統一
原來小弟也曾有選擇英文安裝的勇氣 ...

思考許久
小弟想明白了 ..
"絕對" 的意思應該就不加上時差
這樣各機器才能從不同時區取得資料後
換算成各地時間

不然就需要多加個欄位 , 註明寫這筆資料時 , 在什麼時區


23
原來如此 ... 了解了


clang++ -O3 -std=c++14 -o ${CCE} $1
改為自己習慣編譯的方式即可


24
雜七雜八 / 請問絕對秒數 unix time
« 於: 2016-10-11 01:41 »
小弟有些資料會多加 unix time 欄位
雖一直沒用到 , 但今天發現
這些欄位有些 +8 hour , 也些沒有 -> 即 +0 hour

思考了很久 , 到底是該不該 +8 小時了 ?


只知
絕對秒數是從 1970-01-01 00:00:00 算起
有分時區嗎 ?

謝謝 !!



睏了 ... 差點貼錯版 ...  :P

25
這是什麼觀念與技術 ?

照貼試了一下

/usr/bin/env: clang++: 沒有此一檔案或目錄


26
Linux 討論版 / Re: Perl脚本运行问题
« 於: 2016-10-11 01:16 »
是上次 genemark-ES 的問題嗎 ?

小弟英文不好
不過上次您那個網站
似乎是說 genemark-ES 那些 software 都只是 lib
需要安裝 Braker-1 才能呼叫
(英文差 ... 不知對不對)


27
搜尋一下才知道
kali linux 是 debain 改的

對 debain 不熟
不過 darkranger 所提的第二點 , 是大多數此類問題關鍵

有些改過的系統連 useradd 都是重寫過的 , 那就要從 profile 問題找起了


不過您說 "有時執行完 ... 會消失"
那或許該注意一下是不是其他版 kali 也都如此

28
Linux 討論版 / Re: ubuntu下安装genemark-ES
« 於: 2016-09-28 12:08 »
您可以貼下載的連結

不懂這類軟體的人
說不定也可以給您意見


29
使用 tarball 安裝 (vm 硬碟先鎖住)
應該是目前最新版本了

仍然是有錯
所以另外又裝一台同樣 centOS 6.2 ... 一樣會錯

看來是 centOS 6.2 問題了

目前看來 , 只能將 write 動作再丟一次迴圈 , 寫入成功才 break 了

代碼: [選擇]
[root@MDS77 2016trygoogle]# sqlite3 -version
3.14.2 2016-09-12 18:50:49 29dbef4b8585f753861a36d6dd102ca634197bd6
[root@MDS77 2016trygoogle]# sh w10s.sh & sh r10.sh
[1] 19956
read err
write err
read err
read err
r10.sh end
[root@MDS77 2016trygoogle]# 299

[1]+  Done                    sh w10s.sh
[root@MDS77 2016trygoogle]#


30
感謝 twu2 大 ...
應該是版本問題

在上述 script 中 , 增加執行錯誤回傳 error
我的系統有
centOS 5.x => 3.3.6 => 只有 read 會回傳 error
centOS 6.x => 3.6.20 => read / write 都會 error

看目前 centOS 7.x 是 3.7 版本
但 yum 在 6.x 中最多就升級到我目前這版本
而相依性也非常多 , 正在煩惱中 ...


ps ..
都是虛擬OS , 原本還懷疑 vmware
而不求效率給 1 cpu , 舊硬碟的 , 甚至連 read 都沒 error 現象

頁: [1] 2 3 ... 50