❶ linux查看日誌文件寫入速度的4種方法
有時,我們需要查看某個文件的增長速度,如日誌文件,以此來感受系統的彎局缺負載情況,因為一般情況下,日誌寫入越快,說明系統負載越重。
本文就來介紹下Linux中查看日誌臘拿增長速度的幾種方法,如下:
首先要介紹的是dd,因為dd命令幾乎所有主流發行版都自帶,無需額外安裝,如下:
如上,使用 tail -F 獲取新寫入的數據,然後用管道將數據交給dd,dd將數據拷貝到 /dev/null ,其中 status=progress 是用來顯示拷貝速度的,可見,我們日誌的寫入速度是 471 kB/s 。
pv命令可以看做是帶進度的cp,如下:
原理與dd類似,不過命令換成了pv。
由於日誌數據都是程序(如java)寫入的,而在如下的偽文件中,存放著程序打開的文件信息,如下:
於是定期的讀取這個offset就可以知道文件的寫入速度了,這也是cv命令的實現原理,如下:
通過寫一個小腳本,定期觀察文件大小,也可查看文件寫埋辯入速度,如下:
通過watch再加上觀察,也能大致看出速度,如下:
其實轉念一想,如果我們在某個函數中打上日誌,然後通過grep過濾出此日誌,然後我們只要計算每秒輸出的日誌行數,這豈不就是函數執行的QPS了!
這里可以通過 151/15 計算出QPS是10,由於沒有超過1000,所以看到的是0.0kB/s,如果使用pv命令,會更簡單一些,如下:
❷ Linux下拷貝大文件顯示進度條
可怕的不是時間久,可怕的是未知。 在Linux下拷貝大文件要顯示進度條,我網路了一下看到好多人的解決方法,要麼是自己寫一個程序,要麼是使用scp或rsync這種軟體來曲線救國。最近發現了一個軟體還是比較好解決這個問題的,就是ranger。 ranger是一個命令行下的文件管理器,它就自帶有進度條的功能。 在命令行下輸入ranger就可以打開ranger了,ranger的快捷鍵基本上就是vim風格,所以我們需要復制文件的話,需要將游標移動到需要復制的文件上,然後按yy,就復制好了,然後到目標文件夾,按pp,就已經開始復制了,在頁面最下方可以看到一個進度條。❸ cp命令可不可以顯示進度
PV 命令PV 由Andrew Wood 開發,是 Pipe Viewer 的簡稱,意思是通過管道顯示數據處理進度的信息。這些信息包括已經耗費的時間,完成的百分比(通過進度條顯示),當前的速度,全部傳輸的數據,以及估計剩餘的時間。
"要使用 PV,需要配合合適的選項,把它放置在兩個進程之間的管道。命令的標准輸入將會通過標准輸出傳進來的,而進度會被輸出到標准錯誤輸出。」
用法
例如在linux上使用命令行,使用cp命令是從一個 USB 驅動器拷貝電影文件到你的電腦,你會什麼情況都不清楚,直到整個復制過程結束或者出錯。
使用pv命令在此時很有幫助。比如:
pv -L 2m /media/himanshu/1AC2-A8E3/fNf.mkv > ./Desktop/fnf.mkv
命令行選項,-L 可以修改 pv 命令的傳輸速率。上例中,使用 -L 選項來限制傳輸速率為2MB/s。
如下所示:
❹ linux中多個文件有方法顯示進度條嗎
拷貝春灶多個文件或者文件夾下有多個文件基鍵的時候,可以使用rsync命令,可以顯示拷貝進度,而且支扒鋒扮持斷點重傳。
rsync -av --progress /source/file /dest/dir
❺ Linux下cp和scp的詳細說明及其他們的區別
一、說明
cp:是在同一個linux系統上,在不同的目錄之間復制文件;
scp:是在不同linux系統之間來回復制文件;
二、cp 用法
單個文件復制:
cp 源文件 目標路徑 ~~從原路徑復制源文件到目標路徑下;如果在目標路勁之後加文件名稱和格式意思就是復制過去之後將該文件重命名。
多個文件復制:
cp 源文件1 源文件2 源文件3 ... 目標路徑 ~~從原路徑復制源文件到目標路徑下;
三、cp 的參數詳解
-a 盡可能將源文件狀態、許可權等資料都照原裝予以復制,並且是遞歸;
-r 表示遞歸,若source中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地;
-f 若目的地已經有相同檔名的檔案存在,則在復制前先予以刪除再行復制;
四、scp 的用法
基本語法:scp [參數] 文件 @IP:/目標路徑;如下圖
五、scp參數詳解
-1 強制scp命令使用協議ssh1
-2 強制scp命令使用協議ssh2
-4 強制scp命令只使用IPv4定址
-6 強制scp命令只使用IPv6定址
-B 使用批處理模式(傳輸過程中不詢問傳輸口令或短語)
-C 允許壓縮。(將-C標志傳遞給ssh,從而打開壓縮功能)
-p 保留原文件的修改時間,訪問時間和訪問許可權。
-q 不顯示傳輸進度條。
-r 遞歸復制整個目錄。
-v 詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的調試信息。這些信息用於調試連接,驗證和配置問題。
-c cipher 以cipher將數據傳輸進行加密,這個選項將直接傳遞給ssh。
-F ssh_config 指定一個替代的ssh配置文件,此參數直接傳遞給ssh。
-i identity_file 從指定文件中讀取傳輸時使用的密鑰文件,此參數直接傳遞給ssh。
-l limit 限定用戶所能使用的帶寬,以Kbit/s為單位。
-o ssh_option 如果習慣於使用ssh_config(5)中的參數傳遞方式,
-P port 注意是大寫的P, port是指定數據傳輸用到的埠號
-S program 指定加密傳輸時所使用的程序。此程序必須能夠理解ssh(1)的選項。
例:scp -r 文件夾 @IP:目標路徑;
❻ linux SCP命令查看同步數據進度
這只是通過爛御ssh的拷貝命令。
同步文件侍慧夾建老歷答議用rsync,比如
rsync -aP [email protected]:/media/* [email protected]:/media/
❼ linux 下怎麼查看cp速度
你已經到lib目錄下了,直接輸入命令「cp /var/a.text .」 就行了 使用.,表示是當前路徑下,當然也可以寫絕對路徑cp /var/a.text /user/lib 當然如果你想保留原來文件的許可權的話,可以加上-a參數: "cp -a /var/a.text .」。
❽ linux遠程拷貝文件!!
可以考慮使用 scp命令。
Linux為我們提供了兩個用於文件的命令,一個是cp,一個是scp,但是他們略有不同,cp 主要是用於在同一台電腦上,在不同的目錄之間來迴文件 scp 主要是在不同的Linux系統之間來迴文件。
Linux為我們提供了兩個用於文件的命令,一個是cp,一個是scp,但是他們略有不同。
cp --- 主要是用於在同一台電腦上,在不同的目錄之間來迴文件
scp --- 主要是在不同的Linux系統之間來迴文件
關於cp的具體用法:
命令基本格式:
cp [OPTIONS] SOURCE DEST --- 從源路徑文件到目的路徑
cp [OPTIONS] SOURCE... DIRECTORY --- 將多個源文件到指定的目錄(多個源文件用空格分隔)
OPTIONS:
-a same as -dpR 盡可能將源文件狀態、許可權等資料都照原裝予以復制,並且是遞歸;
-r 表示遞歸,若source中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地;
-f 表示force,若目的地已經有相同檔名的檔案存在,則在復制前先予以刪除再行復制;
範例:
1. 將檔案 aaa 復制(已存在),並命名為 bbb:
cp aaa bbb
2. 將所有的C語言程式拷貝至 Finished 子目錄中:
cp *.c Finished/
關於scp的具體用法:
不同的Linux之間文件常用有3種方法:
第一種就是ftp,也就是其中一台Linux安裝ftp Server,這樣可以在另外一台機器使用ftp的client程序來進行文件的。
第二種方法就是採用samba服務,類似Windows文件 的方式來操作,比較簡潔方便。
第三種就是利用scp命令來進行文件復制。
scp是有Security的文件,基於ssh登錄。
命令基本格式:
scp [OPTIONS] file_source file_target
OPTIONS:
-v 和大多數 linux 命令中的 -v 意思一樣 , 用來顯示進度 . 可以用來查看連接、認證、 或是配置錯誤
-C 使能壓縮選項
-P 選擇埠 . 注意 -p 已經被 rcp 使用
從 本地 復制到 遠程
scp /home/daisy/full.tar.gz [email protected]:/home/root (然後會提示你輸入另外那台172.19.2.75主機的root用戶的登錄密碼,接著就開始了),復制目錄加參數 -r 即可
從 遠程 復制到 本地
scp root@/172.19.2.75:/home/root/full.tar.gz /home/daisy/full.tar.gz
以下是補充:
命令:cp
使用許可權:所有使用者
使用方式:
cp [options] source dest
cp [options] source... directory
說明:將一個檔案拷貝至另一檔案,或將數個檔案拷貝至另一目錄。
把計
-a 盡可能將檔案狀態、許可權等資料都照原狀予以復制。
-r 若 source 中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地。
-f 若目的地已經有相同檔名的檔案存在,則在復制前先予以刪除再行復制。
範例:
將檔案 aaa 復制(已存在),並命名為 bbb :
cp aaa bbb
將所有的C語言程式拷貝至 Finished 子目錄中 :
cp *.c Finished
命令:scp
不同的Linux之間文件常用有3種方法:
第一種就是ftp,也就是其中一台Linux安裝ftp Server,這樣可以另外一台使用ftp的client程序來進行文件的。
第二種方法就是採用samba服務,類似Windows文件 的方式來操作,比較簡潔方便。
第三種就是利用scp命令來進行文件復制。
scp是有Security的文件,基於ssh登錄。操作起來比較方便,比如要把當前一個文件到遠程另外一台主機上,可以如下命令。
scp /home/daisy/full.tar.gz [email protected]:/home/root
然後會提示你輸入另外那台172.19.2.75主機的root用戶的登錄密碼,接著就開始了。
如果想反過來操作,把文件從遠程主機到當前系統,也很簡單。
linux之cp/scp命令+scp命令詳解(轉) - linmaogan - 獨木★不成林scp root@/full.tar.gz 172.19.2.75:/home/root/full.tar.gz home/daisy/full.tar.gz
linux 的 scp 命令 可以 在 linux 之間復制 文件 和 目錄;
==================
scp 命令
==================
scp 可以在 2個 linux 主機間復制文件;
命令基本格式:
scp [可選參數] file_source file_target
======
從 本地 復制到 遠程
======
* 復制文件:
* 命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
第1,2個指定了用戶名,命令執行後需要再輸入密碼,第1個僅指定了遠程的目錄,文件名字不變,第2個指定了文件名;
第3,4個沒有指定用戶名,命令執行後需要輸入用戶名和密碼,第3個僅指定了遠程的目錄,文件名字不變,第4個指定了文件名;
* 例子:
scp /home/space/music/1.mp3 [email protected]:/home/root/others/music
scp /home/space/music/1.mp3 [email protected]:/home/root/others/music/001.mp3
scp /home/space/music/1.mp3 www.cumt.e.cn:/home/root/others/music
scp /home/space/music/1.mp3 www.cumt.e.cn:/home/root/others/music/001.mp3
* 復制目錄:
* 命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
第1個指定了用戶名,命令執行後需要再輸入密碼;
第2個沒有指定用戶名,命令執行後需要輸入用戶名和密碼;
* 例子:
scp -r /home/space/music/ [email protected]:/home/root/others/
scp -r /home/space/music/ www.cumt.e.cn:/home/root/others/
上面 命令 將 本地 music 目錄 復制 到 遠程 others 目錄下,即復制後有 遠程 有 ../others/music/ 目錄
======
從 遠程 復制到 本地
======
從 遠程 復制到 本地,只要將 從 本地 復制到 遠程 的命令 的 後2個參數 調換順序 即可;
例如:
scp [email protected]:/home/root/others/music /home/space/music/1.mp3
scp -r www.cumt.e.cn:/home/root/others/ /home/space/music/
最簡單的應用如下 :
scp 本地用戶名 @IP 地址 : 文件名 1 遠程用戶名 @IP 地址 : 文件名 2
[ 本地用戶名 @IP 地址 :] 可以不輸入 , 可能需要輸入遠程用戶名所對應的密碼 .
可能有用的幾個參數 :
-v 和大多數 linux 命令中的 -v 意思一樣 , 用來顯示進度 . 可以用來查看連接 , 認證 , 或是配置錯誤 .
-C 使能壓縮選項 .
-P 選擇埠 . 注意 -p 已經被 rcp 使用 .
-4 強行使用 IPV4 地址 .
-6 強行使用 IPV6 地址 .
注意兩點:
1.如果遠程伺服器防火牆有特殊限制,scp便要走特殊埠,具體用什麼埠視情況而定,命令格式如下:
#scp -p 4588 [email protected]:/usr/local/sin.sh /home/administrator
2.使用scp要注意所使用的用戶是否具有可讀取遠程伺服器相應文件的許可權。
❾ Linux 有什麼方法可以使得 cp mv 文件的時候能夠顯示進度
cp的參數: -f:如果目標文件或目錄已存在,不詢問用戶直接覆蓋; -i:如果目標文件或目錄已存在,詢問用戶是否覆蓋; -R:遞歸復制目錄,即連頃仔同目錄下的子目錄和文件一起復制鄭乎念; -P:在復制喊困時保持源文件的所有者、許可權和事件標志。
❿ linuxcp命令並顯示拷貝時間
在Linux系統裡面用到 cp命令復制不能顯示文件拷貝的進度,也不能計算還有多長時間文件可以 拷貝結束,現在寫一個程序可以顯示文件拷貝的進度。
思路:當前目錄下面有一個1G大小的bigfile文件
當我在命令行下面輸入ls -lh bigfile,我會得到這個文件的詳細信息,當然也可以看到文件的大小。
www.linuxidc.com@linuxidc~$ ls -lh bigfile
-rw-rw-r-- 1 nii nii 1000M 7月 13 19:41 bigfile
我們可以用popen函數,把執行之後的結果」-rw-rw-r– 1 nii nii 1000M 7月 13 19:41 bigfil」這串字元串接收下來,我們可以提取出來表示文件大小的那段字元串,比如這個我們可以提取」1000」在用atoi函數,把字元串轉換為int型數值1000(不了解popen函數和atoi函數的請自行學習),就可以獲得文件大小。
例如我的文件名字叫mycp.c,我執行gcc -o mycp mycp.c生成一個mycp的可執行文件。
接下來我在命令行上輸入./mycp bigfile destbigfile把當前目錄下面的bigfile文件拷貝為destbigfile,這時我產兄察生一個子進程,子進程負責調用系統的cp命令拷貝,父進程每隔一秒鍾,去獲取destbigfile、bigfile 文件的大小,就可以知道拷貝的進度,當然也可以獲得拷貝的時間,就可以計算出來離拷貝結束還有多長時間。
下面是代碼的實現:
#include
#include
#include
#include
#include
#include
#include
/** 得到文件的詳細信息 */
int getFileMsg(char* pchCmd,char *pchMsg);
int main(int argc,char* argv[])
{
char szSrcFileMsg[150] = {0};
char szSrcFileSizeMsg[10] = {0};
int nSrcFileSize = 0;
char szSDestFileMsg[150] = {0};
char szDestFileSizeMsg[10] = {0};
int nDestFileSize = 0;
int pid = 0;
/** shell執行的命令衫清 ,在創建文件的時候使用*/
char szExcueCommand[150] = {0};
float fRate = 0;
int nUsedTime = 0;
float nLastTime = 0;
/** 入參必須是三個 */
if (1 == argc)
{
printf("please input the src and des file\n");
return -1;
}
/** 產生子進程 */
pid = fork();
/** 如果是子進程,負責執行復制命令 */
if (0 == pid)
{
sprintf(szExcueCommand,"%s %s %s","cp",argv[1],argv[2]);
printf("%s\n",szExcueCommand);
system(szExcueCommand);
return 0;
}
/** 父進程負責把正在復制的原文件和復制的目標文件的大小計算出來,就可以知道復制的進度,計算頻率為1秒一次 */
else
{
/** 獲得原文件的大小 */
if (-1 == getFileMsg(argv[1],szSrcFileMsg))
{
printf("get sorce file message failed \n");
return -1;
}
/** 把原文件大小的信息取出來 */
strncpy(szSrcFileSizeMsg,szSrcFileMsg+21,4);
szSrcFileSizeMsg[5] = '\0';
nSrcFileSize = atoi(szSrcFileSizeMsg);
while(1)
{
sleep(1);
nUsedTime ++;
/** 獲得目標文件的大小 */
if (-1 == getFileMsg(argv[2],szSDestFileMsg))
{
printf("get dest file message failed \n");
return -1;
}
/** 把原文或塵前件大小的信息取出來 */
strncpy(szDestFileSizeMsg,szSDestFileMsg+21,4);
szDestFileSizeMsg[5] = '\0';
nDestFileSize = atoi(szDestFileSizeMsg);
/*** 計算復制的進度 */
fRate = (nDestFileSize * 100) / nSrcFileSize ;
/** 計算剩下的時間 */
nLastTime = ((100 - fRate) * nUsedTime) / fRate;
/** 列印進度條 */
printf("已復制 %.2f %% 還需要 %.1f 秒\n",fRate,nLastTime);
/** 復制完成之後,退出循環 */
if (nSrcFileSize == nDestFileSize)
{
printf("復制完成,耗時 %d 秒\n",nUsedTime);
break;
}
}
}
return 0;
}
/** 得到文件的詳細信息 */
int getFileMsg(char* pchCmd,char *pchMsg)
{
FILE *fstream=NULL;
char szBuff[BUFSIZ] = {0};
char szExcueCommand[150] = {"ls -lh"};
sprintf(szExcueCommand,"%s %s",szExcueCommand,pchCmd);
if (NULL==(fstream=popen(szExcueCommand,"r")))
{
perror("execute command failed: ");
return -1;
}
/** 得到命令的結果 */
if (NULL == fgets(szBuff, sizeof(szBuff), fstream))
{
pclose(fstream);
return -1;
}
pclose(fstream);
strcpy(pchMsg,szBuff);
return 0;
}
Linux下執行結果為:
www.linuxidc.com@linuxidc:~/advance_code/homework/signal$ ./mycp bigfile destbigfile
cp bigfile destbigfile
已復制 3.00 % 還需要 32.3 秒
已復制 5.00 % 還需要 38.0 秒
已復制 8.00 % 還需要 34.5 秒
已復制 10.00 % 還需要 36.0 秒
已復制 12.00 % 還需要 36.7 秒
已復制 13.00 % 還需要 40.2 秒
已復制 14.00 % 還需要 43.0 秒
已復制 17.00 % 還需要 39.1 秒
已復制 20.00 % 還需要 36.0 秒
已復制 21.00 % 還需要 37.6 秒
已復制 24.00 % 還需要 34.8 秒
已復制 24.00 % 還需要 38.0 秒
已復制 27.00 % 還需要 35.1 秒
已復制 32.00 % 還需要 29.8 秒
已復制 33.00 % 還需要 30.5 秒
已復制 35.00 % 還需要 29.7 秒
已復制 38.00 % 還需要 27.7 秒
已復制 41.00 % 還需要 25.9 秒
已復制 42.00 % 還需要 26.2 秒
已復制 43.00 % 還需要 26.5 秒
已復制 44.00 % 還需要 26.7 秒
已復制 48.00 % 還需要 23.8 秒
已復制 50.00 % 還需要 23.0 秒
已復制 52.00 % 還需要 22.2 秒
已復制 53.00 % 還需要 22.2 秒
已復制 53.00 % 還需要 23.1 秒
已復制 57.00 % 還需要 20.4 秒
已復制 59.00 % 還需要 19.5 秒
已復制 61.00 % 還需要 18.5 秒
已復制 63.00 % 還需要 17.6 秒
已復制 63.00 % 還需要 18.2 秒
已復制 66.00 % 還需要 16.5 秒
已復制 69.00 % 還需要 14.8 秒
已復制 70.00 % 還需要 14.6 秒
已復制 72.00 % 還需要 13.6 秒
已復制 73.00 % 還需要 13.3 秒
已復制 75.00 % 還需要 12.3 秒
已復制 78.00 % 還需要 10.7 秒
已復制 79.00 % 還需要 10.4 秒
已復制 82.00 % 還需要 8.8 秒
已復制 83.00 % 還需要 8.4 秒
已復制 84.00 % 還需要 8.0 秒
已復制 87.00 % 還需要 6.4 秒
已復制 90.00 % 還需要 4.9 秒
已復制 91.00 % 還需要 4.5 秒
已復制 93.00 % 還需要 3.5 秒
已復制 93.00 % 還需要 3.5 秒
已復制 96.00 % 還需要 2.0 秒
已復制 99.00 % 還需要 0.5 秒
已復制 100.00 % 還需要 0.0 秒
復制完成,耗時 50 秒