檢查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é)點(diǎn)會獲取用戶設(shè)置的ROS_MASTER_URI變量中列出的URI地址和端口號(默認(rèn)為當(dāng)前的本地IP和11311端口號)。
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4286瀏覽量
62335 -
文件夾
+關(guān)注
關(guān)注
0文章
14瀏覽量
8153 -
ROS
+關(guān)注
關(guān)注
1文章
276瀏覽量
16942
發(fā)布評論請先 登錄
相關(guān)推薦
評論