『壹』 linux串口怎麼清空
tcflush函數清除串口輸入緩存(終端驅動已接到,但用戶尚未讀取)或串口輸出緩存版(用戶已權經寫如緩存,但尚未發送)。
函數原型:
int tcflush(int filedes,int quene)
參數解釋
filedes: 描述符。
quene取值及含義:
*TCIFLUSH 清除輸入隊列
*TCOFLUSH 清除輸出隊列
*TCIOFLUSH 清除輸入、輸出隊列
舉例:tcflush(fd,TCIOFLUSH);
『貳』 linux清理內存緩存命令
看緩存的命令
free -m
清理緩存的命令
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
echo 0 是不釋放緩存
echo 1 是釋放頁緩存 《Linux就該這么學》
ehco 2 是釋放dentries和inodes緩存
echo 3 是釋放 1 和 2 中說道的的所有緩存
『叄』 如何為linux釋放內存和緩存
在Linux系統下,我們一般不需要去釋放內存,因為系統已經將內存管理的很好。但是凡事也有例外,有的時候內存會被緩存佔用掉,導致系統使用SWAP空間影響性能,此時就需要執行釋放內存(清理緩存)的操作了。
Linux系統的緩存機制是相當先進的,他會針對dentry(用於VFS,加速文件路徑名到inode的轉換)、Buffer Cache(針對磁碟塊的讀寫)和Page Cache(針對文件inode的讀寫)進行緩存操作。但是在進行了大量文件操作之後,緩存會把內存資源基本用光。但實際上我們文件操作已經完成,這部分緩存已經用不到了。這個時候,我們難道只能眼睜睜的看著緩存把內存空間占據掉么?
所以,我們還是有必要來手動進行Linux下釋放內存的操作,其實也就是釋放緩存的操作了。
要達到釋放緩存的目的,我們首先需要了解下關鍵的配置文件/proc/sys/vm/drop_caches。這個文件中記錄了緩存釋放的參數,默認值為0,也就是不釋放緩存。他的值可以為0~3之間的任意數字,代表著不同的含義:
0 – 不釋放
1 – 釋放頁緩存
2 – 釋放dentries和inodes
3 – 釋放所有緩存
知道了參數後,我們就可以根據我們的需要,使用下面的指令來進行操作。
首先我們需要使用sync指令,將所有未寫的系統緩沖區寫到磁碟中,包含已修改的 i-node、已延遲的塊 I/O 和讀寫映射文件。否則在釋放緩存的過程中,可能會丟失未保存的文件。
#sync
接下來,我們需要將需要的參數寫進/proc/sys/vm/drop_caches文件中,比如我們需要釋放所有緩存,就輸入下面的命令:
#echo 3 > /proc/sys/vm/drop_caches
此指令輸入後會立即生效,可以查詢現在的可用內存明顯的變多了。
要查詢當前緩存釋放的參數,可以輸入下面的指令:
#cat /proc/sys/vm/drop_caches
#free -m
對於清除swap,只有先關閉swap了,用:
#swapoff -a
而後啟用swap,因為只是清除,不是說不要用swap的嘛 :
#swapon -a
http://blog.sina.com.cn/s/blog_539d6e0c0100ys3o.html
Linux 自動釋放內存腳本
發表於119 天前 ? 技術文章 ? 暫無評論
腳本下載地址:Cached
腳本內容:
#! /bin/bash
# cache釋放:
# To free pagecache:
sync
sync
#echo 1 > /proc/sys/vm/drop_caches
# To free dentries and inodes:
#echo 2 > /proc/sys/vm/drop_caches
# To free pagecache, dentries and inodes:
echo 3 > /proc/sys/vm/drop_caches
# 說明,釋放前最好sync一下,防止丟數據。
利用系統crontab實現每天自動運行:
crontab -e
輸入以下內容:
00 00 * * * /root/Cached.sh
每天0點釋放一次內存,這個時間可以根據自己需要自行設置,我的伺服器情況是每天自動釋放一次就OK了
在設置這個腳本的時候,發生了一系列的問題
在測試運行./Cached.sh時提示錯誤:Permission denied 許可權的問題
解決方法:
chmod +x .Cached.sh
或
chmod 777 Cached.sh
接著又出現錯誤提示:/bin/bash^M: bad interpreter: No such file or directory
這是因為在windows下編輯的.sh文件編碼格式和linux下不一樣,轉換一下編碼格式即可:
dos2unix Cached.sh
http://blog.sinorain.com/archives/157
『肆』 linux用shell命令怎樣清理系統緩存
可以使用以下命令清理系統垃圾
sudo apt-get autoclean 清理舊版本的軟體緩存
sudo apt-get clean 清理所有軟體緩存
sudo apt-get autoremove 刪除系統不再使用的孤立軟體
執行
sudo nautilus /boot
刪除除了最新內核以外的其它文件,(比如2006-08-17 官方內核是 26,那就可以刪除所有 23,25結尾的舊內核文件)
整理grub啟動菜單
sudo gedit /boot/grub/menu.lst
刪除除最新內核以外的其它啟動項(如23,25等)
---------------------------------
Ubuntu Linux與Windows系統不同,Ubuntu Linux不會產生無用垃圾文件,但是在升級緩存中,Ubuntu Linux不會自動刪除這些文件,今天就來說說這些垃圾文件清理方法。
1,非常有用的清理命令:
sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove
這三個命令主要清理升級緩存以及無用包的。
2,清理opera/ firefox的緩存文件:
ls ~/.opera/cache4
ls ~/.mozilla/firefox/*.default/Cache
3,清理Linux下孤立的包:
圖形界面下我們可以用:gtkorphan
sudo apt-get install gtkorphan -y
終端命令下我們可以用:deborphan
sudo apt-get install deborphan -y
4,卸載:tracker
這個東西一般我只要安裝Ubuntu就會第一刪掉tracker 他不僅會產生大量的cache文件而且還會影響開機速度。所以在新得利裡面刪掉就行。
5,刪除多餘的內核:一定不要刪錯哦,切記!!
打開終端敲命令:dpkg --get-selections|grep linux
有image的就是內核文件
刪除老的內核文件:
sudo apt-get remove 內核文件名 (例如:linux-image-2.6.27-2-generic)
內核刪除,釋放空間了,應該能釋放130-140M空間。
最後不要忘了看看當前內核:uname -a
附錄:
包管理的臨時文件目錄:
包在
/var/cache/apt/archives
沒有下載完的在
/var/cache/apt/archives/partial
『伍』 linux系統定期執行清除緩存的命令
1 先寫一個腳本存為一個文件,比如 clearmem.sh
#!/bin/bash
sync
echo 3 > /proc/sys/vm/drop_caches
2 然後給這個腳本加一個可執行許可權
chmod +x chearmem.sh
3 先試試運行一下版看看內存釋放沒有,free -m
sh clearmem.sh
free -m
4 最後創建權一個計劃任務
crontab -e
加如下內容,比如每天1點清理一次
00 1 * * * sh /xxx/路徑/clearmem.sh
『陸』 linux磁碟空間不足怎麼辦,磁碟清理方法
linux中如果發生磁碟空間不足的問題,可能導致某些軟體無法使用,用戶賬號登錄發生問題,最為嚴重的情況可能導致系統的crash,所以如果發現磁碟空間不足,需要及時進行清理。
linux系統的磁碟清理相對於windows來說要簡單不少,原因是linux中的軟體安裝不像windows那樣需要注冊注冊表,linux中的軟體都是以文件的形式存在於目錄中的,所以刪除目錄及子文件就是刪除軟體。
linux中比較容易成為垃圾文件佔用空間的文件類型有下面幾種
日誌文件
軟體安裝包,tar包,rpm包,zip包等等
軟體運行結果
錯誤腳本導致的死循環文件
所以首先需要對上述文件進行排查,找出你需要刪除的無用數據,然後使用rm命令刪除即可。
命令:rm -rf foldername
『柒』 linux 中緩存怎樣清除
#清理Linux系統緩存
[root@oracle~]#echo1>/proc/sys/vm/drop_caches
註:1>. /proc是一個虛擬文件系統,可以通過對它的讀寫操作作為與kernel實體間進行通信的一種手段。也就是說可以通過修改/proc中的文件,來對當前kernel的行為做出調整。也就是說我們可以通過調整/proc/sys/vm/drop_caches來釋放內存。
0 – 不釋放
1 – 釋放頁緩存
2 – 釋放文件節點緩存和目錄項緩存
3 – 釋放所有緩存
[root@oracle~]#sysctl-p
#查看剩餘內存
[root@oracle~]#free-m
Mem:338319521431011136
-/+buffers/cache:8142568
Swap:19831951788
『捌』 如何在Linux操作系統中手工釋放內存緩存
要達到釋放緩存的目的,我們首先需要了解下關鍵的配置文件/proc/sys/vm/drop_caches。這個文件中記錄了緩存釋放的參數,默認值為0,也就是不釋放緩存。他的值可以為0~3之間的任意數字,代表著不同的含義:
0
–
不釋放
1
–
釋放頁緩存
2
–
釋放dentries和inodes
3
–
釋放所有緩存
知道了參數後,我們就可以根據我們的需要,使用下面的指令來進行操作。
首先我們需要使用sync指令,將所有未寫的系統緩沖區寫到磁碟中,包含已修改的
i-node、已延遲的塊
I/O
和讀寫映射文件。否則在釋放緩存的過程中,可能會丟失未保存的文件。
#sync
接下來,我們需要將需要的參數寫進/proc/sys/vm/drop_caches文件中,比如我們需要釋放所有緩存,就輸入下面的命令:
#echo
3
>
/proc/sys/vm/drop_caches
此指令輸入後會立即生效,可以查詢現在的可用內存明顯的變多了。
要查詢當前緩存釋放的參數,可以輸入下面的指令:
#cat
/proc/sys/vm/drop_caches
下面我們來看一個實際測試:
先看看內存使用狀況
[root@node1
~]#
free
-m
total
used
free
shared
buffers
cached
Mem:
8004
6557
1446
0
163
5630
-/+
buffers/cache:
763
7240
Swap:
1983
0
1983
把內存里的數據暫時寫到硬碟里
[root@node1
~]#
sync
修改/proc/sys/vm/drop_caches文件
[root@node1
~]#
echo
3
>
/proc/sys/vm/drop_caches
[root@node1
~]#
cat
/proc/sys/vm/drop_caches
再看內存,終於釋放出來了。
[root@node1
~]#
free
-m
total
used
free
shared
buffers
cached
Mem:
8004
631
7372
0
0
60
-/+
buffers/cache:
570
7433
Swap:
1983
0
1983