Dienstag, 28. Juni 2011

OpenIndiana: pkgadd in der Zone

Bei der Erstellung einer Solaris-Zone wird in der Zone nur ein Minimum an Software installiert. Das zeigt sich beim Arbeiten in der Zone wie folgt:
root@sbs-dev:~# pkgadd -d http://download.blastwave.org/csw/pkgutil_i386.pkg
-bash: pkgadd: command not found
Damit mit man herausfindet, welches Paket auf dem System fehlt, kann mit folgendem Befehl gesucht werden:
root@sbs-dev:~# pkg search pkgadd
INDEX ACTION VALUE PACKAGE
basename file usr/sbin/pkgadd pkg:/package/svr4@0.5.11-0.148
Danach ganz einfach mittels PKG nachinstallieren:
root@sbs-dev:~# pkg install svr4
Packages to install: 3
Create boot environment: No
Services to restart: 1
DOWNLOAD PKGS FILES XFER (MB)
Completed 3/3 56/56 1.1/1.1$<3>

PHASE ACTIONS
Install Phase 138/138

PHASE ITEMS
Package State Update Phase 3/3
Image State Update Phase 2/2

Montag, 28. Februar 2011

Powershell-Einzeiler für Snapshotbereinigungen auf einer FAS

Folgendes Skript löscht alle Snapshots, welche älter sind als 30 Tage und auf einem Volume abgespeichert sind, welches die Zeichenfolge mxm beinhaltet.

get-navol | where {$_.Name -match 'mxm'} | foreach-object {$ParentName=$_.Name;get-nasnapshot $_.Name | add-member -membertype noteproperty -name ParentName -value $ParentName -passthru} | where {$_.AccessTimeDT -lt ((Get-Date).AddDays(-30))} | ForEach-Object {Remove-NaSnapshot $_.ParentName $_.Name -Verbose}

Folgendes Skript löscht Snapshots, bei welchen die Zeichenfolge clone im Namen vorkommt.

get-navol | foreach-object {$ParentName=$_.Name;get-nasnapshot $_.Name | add-member -membertype noteproperty -name ParentName -value $ParentName -passthru} | where {$_.Name -match 'clone'} | ForEach-Object {Remove-NaSnapshot $_.ParentName $_.Name -Verbose}

Wenn die Snapshots automatisch gelöscht werden sollen, so ist das Remove-NaSnapshot-CMDlet wie folgt zu vervollständigen:

get-navol | foreach-object {$ParentName=$_.Name;get-nasnapshot $_.Name | add-member -membertype noteproperty -name ParentName -value $ParentName -passthru} | where {$_.Name -match 'clone'} | ForEach-Object {Remove-NaSnapshot $_.ParentName $_.Name -Verbose -Confirm:$False}