ESXi上增加虛擬硬碟容量
虛擬環境建立時所設定的虛擬硬碟如果容量不足時,想要增加虛擬硬碟容量時該怎麼做?是需要重新再建立一個容的量大的再像在PC上用備份的方式將資料備份過去嗎?其實在虛擬的環境是很方便的,直接將原先的虛擬硬碟做 擴展 的動作就完成虛擬硬碟容量的增加。
ESXi提供vmkfstools
工具再配合命令X
就能完成這個動作,命令用法如下:
vmkfstools –X [容量] [路徑]
Linux,Pi,IoT,rfid
虛擬環境建立時所設定的虛擬硬碟如果容量不足時,想要增加虛擬硬碟容量時該怎麼做?是需要重新再建立一個容的量大的再像在PC上用備份的方式將資料備份過去嗎?其實在虛擬的環境是很方便的,直接將原先的虛擬硬碟做 擴展 的動作就完成虛擬硬碟容量的增加。
ESXi提供vmkfstools
工具再配合命令X
就能完成這個動作,命令用法如下:
vmkfstools –X [容量] [路徑]
Linux的網路卡定是以eth + 號碼
來命名,其中號碼從0開始,依照您的網卡路數量依序累加,我們可以透過命令ifconfig -a
取得主機上網卡編號:
iOS將每個APP安裝好後都放置於一個Sandbox,在Sandbox裡,APP時都會有各自的目錄結構,其中存放著物件提供的設定檔存放以及下載檔案的存放…等,也包含了APP快取或暫存檔的,下圖就是每個APP安裝時產生的目錄結構: figure-1
在Linux 64位元下要執行32位元程式只要安裝32位元相關的函數庫就可以正常執行,所以要先將原本只有64位元模式再加上32位元模式,這個對於Debian來說叫arch
,一個系統中可以存在多個arch,這種的叫multiarch
,所以利用dpkg
將要加入的arch加入,這次需要加的是32位元模式,在命令上面要加入i386
dpkg –add-architecture i386 # enable multi-arch
剛好Synology機器上做Raid1的備份機竟然無法開機,不過查了一下,它是屬於Software Raid,加上又是Raid1,所以只需要掛載單顆硬碟就能做資料的備份。
NSFileManager 照名稱當然也是提供最基本目錄管理:拷貝、移動、刪除功能,以上這些與檔案管理其實是類似的,目錄管理增加了一項建立目錄的功能,當然也會依照路徑表示方式,使用2種方式介紹。
傳統路徑所代表的就是一般路徑表示,Mac是使用Unix的路徑表示方式。
建立目錄時,必需要注意withIntermediateDirectories
這個傳入的值,當YES
,不管您指定的目錄名稱中間的目錄是否存在,它都會自動不存在的目錄並將所有目錄建立完成,例如,當我要建立目錄名稱為dir1
,並且指定的路徑是/tmp/dira/dir1
,中間的dira
目錄並不存在,但指定withIntermediateDirectories: YES
就會先建立dira
再建立dir1
,反之只要建立目錄過程碰到 路徑本身不存在或您指定的目錄已經存在 時就會停止建立並返回建立失敗值為NO
。
//-----------start----------- NSFileManager *filemanager; filemanager = [NSFileManager defaultManager]; if ([filemanager createDirectoryAtPath: @"/tmp/dir1" withIntermediateDirectories: YES attributes: nil error: NULL] == YES) NSLog (@"建立成功!"); else NSLog (@"建立失敗!"); //------------end------------
NSFileManager 照名稱當然也是提供最基本檔案管理:拷貝、移動、刪除功能,接下來依照路徑表示方式,使用2種方式介紹。
傳統路徑所代表的就是一般路徑表示,Mac是使用Unix的路徑表示方式。
//-----------start----------- NSFileManager *filemanager; filemanager = [NSFileManager defaultManager]; if ([filemanager copyItemAtPath: @"/tmp/file.txt" toPath: @"/tmp/newfile.txt" error: NULL] == YES) NSLog (@"拷貝成功!"); else NSLog (@"拷貝失敗!"); //------------end------------
NSFileManager 提供文件權限的查詢的方法,分別為:
每個方法都需要指定完整的路徑,透過此方法會返回BOOL值為YES或NO,下面範例透過檔名temp.txt
來查詢:
Objective-C在Fundation Framework中提供了 可變類別(mutable) 與 不可變類別(immutable),依字面來說,不可變類別即是物件宣告時就給予初始值內容,其內容無法去修改,如果用方法所產生與原先不同的內容時,其方法都會將物件重新建立後再取代原先物件。
舉個例子來說,Java在字串中也有 String 與 StringBuilder 這兩種方式,以 StringBuilder 就是指可變類別(mutable),下面以NSString
例子來看一下不可變類別:
//-----------start----------- NSString *str = @"danny"; NSLog(@"%@",str); str = [str stringByAppendingString:@" is danny"]; NSLog(@"%@",str); //------------end------------
程式中看的出來第一次初始值為danny
,之後再將它加入is danny
,但在不可變的底層來說:
danny
指向str第二次建立 danny is danny
指向str並刪除第一次建立的danny
NSCalendar
支援幾種國家的曆法後,國曆轉農曆的轉換就相當的方便!範例是將日期1979-12-03轉為農曆,轉換之前將日期轉入NSDate再將NSCalendar
設定成中國曆法(NSChineseCalendar),使用NSDateComponents
物件處理一下,之後就是以農曆為單位的結果。
//-----------start----------- NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init]; [dateFormatter1 setDateFormat:@"yyyy-MM-dd"]; NSDate *startingDate = [dateFormatter1 dateFromString:@"1979-12-03"]; // NSCalendar* calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSChineseCalendar]; NSUInteger unitFlags = NSMonthCalendarUnit | NSYearCalendarUnit | NSDayCalendarUnit; NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:startingDate]; // NSInteger days = [dateComponents day]; NSInteger months = [dateComponents month]; NSLog(@"Date 1979-12-03 to NSChineseCalendar %d / %d",months,days); //------------end------------
輸出結果:
2013-03-29 13:39:23.022 testa1[50546:c07] Date 1979-12-03 to NSChineseCalendar 10 / 14