檢查log文件夾占用空間
roslaunch這個python包還負(fù)責(zé)檢查保存log的文件夾有多大。在ros_comm-noetic-develtoolsroslaunchsrcroslaunch_ init _.py文件中的main函數(shù)里,有以下語句。
看名字就知道是干啥的了。
rlutil.check_log_disk_usage()
再打開同一路徑下的rlutil.py,發(fā)現(xiàn)它又調(diào)用了rosclean包中的get_disk_usage函數(shù)。
我們發(fā)現(xiàn),這個函數(shù)里直接寫死了比較的上限:disk_usage > 1073741824,當(dāng)然這樣不太好,應(yīng)該改為可配置的。
數(shù)字1073741824的單位是字節(jié),剛好就是1GB(102 4 3 1024^31024 3byte)。
我們要是想修改log文件夾報警的上限,直接改這個值即可。
def check_log_disk_usage():
"""
Check size of log directory. If high, print warning to user
"""
try:
d = rospkg.get_log_dir()
roslaunch.core.printlog("Checking log directory for disk usage. This may take a while.nPress Ctrl-C to interrupt")
disk_usage = rosclean.get_disk_usage(d)
# warn if over a gig
if disk_usage > 1073741824:
roslaunch.core.printerrlog("WARNING: disk usage in log directory [%s] is over 1GB.nIt's recommended that you use the 'rosclean' command."%d)
else:
roslaunch.core.printlog("Done checking log file disk usage. Usage is < 1GB.")
except:
pass
我們刨根問底,追查rosclean.get_disk_usage(d)是如何實現(xiàn)的。
這個rosclean包不在ros_comm里面,需要單獨(dú)下載。
打開后發(fā)現(xiàn)這個包還是跨平臺的,給出了Windows和Linux下的實現(xiàn)。
如果是Windows系統(tǒng),用os.path.getsize函數(shù)獲取文件的大小,通過os.walk函數(shù)遍歷所有文件,加起來就是文件夾的大小。
如果是Linux系統(tǒng),用Linux中的du -sb命令獲取文件夾的大小。哎,搞個機(jī)器人不僅要學(xué)習(xí)python,還得熟悉Linux,容易嗎?
主節(jié)點會獲取用戶設(shè)置的ROS_MASTER_URI變量中列出的URI地址和端口號(默認(rèn)為當(dāng)前的本地IP和11311端口號)。
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4355瀏覽量
63319 -
文件夾
+關(guān)注
關(guān)注
0文章
14瀏覽量
8225 -
ROS
+關(guān)注
關(guān)注
1文章
281瀏覽量
17254
發(fā)布評論請先 登錄
相關(guān)推薦
labview 如何讀取一個文件夾中的所有圖片,并保存到指定的文件夾中。
如何給共享文件夾加密
如何刪除msn共享文件夾
ubuntu中隱藏/顯示文件和文件夾
cmd如何在命令提示符下文件夾操作?詳細(xì)方法實例分析

Linux中如何判斷文件夾是否存在并新建文件夾

如何在文件管理器中隱藏文件和文件夾

ASP NET中的APP Code和BIN文件夾的詳細(xì)介紹
Unity中所有特殊的文件夾
筆記:Unity中所有特殊的文件夾

評論