檢查log文件夾占用空間
roslaunch這個python包還負責檢查保存log的文件夾有多大。在ros_comm-noetic-develtoolsroslaunchsrcroslaunch_ init _.py文件中的main函數里,有以下語句。
看名字就知道是干啥的了。
rlutil.check_log_disk_usage()
再打開同一路徑下的rlutil.py,發現它又調用了rosclean包中的get_disk_usage函數。
我們發現,這個函數里直接寫死了比較的上限:disk_usage > 1073741824,當然這樣不太好,應該改為可配置的。
數字1073741824的單位是字節,剛好就是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)是如何實現的。
這個rosclean包不在ros_comm里面,需要單獨下載。
打開后發現這個包還是跨平臺的,給出了Windows和Linux下的實現。
如果是Windows系統,用os.path.getsize函數獲取文件的大小,通過os.walk函數遍歷所有文件,加起來就是文件夾的大小。
如果是Linux系統,用Linux中的du -sb命令獲取文件夾的大小。哎,搞個機器人不僅要學習python,還得熟悉Linux,容易嗎?
主節點會獲取用戶設置的ROS_MASTER_URI變量中列出的URI地址和端口號(默認為當前的本地IP和11311端口號)。
-
函數
+關注
關注
3文章
4333瀏覽量
62684 -
文件夾
+關注
關注
0文章
14瀏覽量
8172 -
ROS
+關注
關注
1文章
278瀏覽量
17022
發布評論請先 登錄
相關推薦
評論