Anda di halaman 1dari 7

Netapp Data Ontap CLI Pocket Guide http://www.sysadmintutorials.com/tutorials/netapp/netapp-dat...

Home
Tutorials
Resources
Forums
Essential Books
Contact Us
About

Search our site...

Sysadmin Tutorials

Step-by-Step Tutorials for System Administrators

Netapp Data Ontap 7-Mode CLI Pocket Guide


13 Tweet 3 Share Like 4
19 Flares Google+ 12 Twitter 3 LinkedIn 0 Facebook 4 StumbleUpon 0
Reddit 0 Filament.io Made with Flare More Info 19 Flares StumbleUpon

Here are a few Data Ontap 7-Mode CLI commands that ive put together for reference. I will continuously add to this list

General Commands
setup (Re-Run initial setup)
halt (Reboots controller into bootrom)
reboot (Reboots controller back to Data Ontap)
sysconfig -a (System configuration and information)
java netapp.cmds.jsh (limited freebsd cli)
storage show disk (show physical information about disks)
passwd (Change password for logged in user)
sasadmin shelf (shows a graphical layout of your shelves with occupied disk slots)
options trusted.hosts x.x.x.x or x.x.x.x/nn (hosts that are allowed telnet, http, https and ssh admin access. x.x.x.x = ip address, /nn is network bits)
options trusted.hosts * (Allows all hosts to the above command)
sysstat -s 5 (Displays operating statistics every 5 seconds i.e. CPU, NFS, CIFS, NET, DISK, etc)
reallocate measure /vol/volname (Measure the amount of fragmentation in a volume)
options autologout.console.enable on (Turns on autologout for the console)
options autologout.console.timeout 300 (300 second autologout for the console)
options autologout.telnet.enable on (Turns on autologout for telnet)
options autologout.telnet.timeout 300 (300 second autologout for the console)
environment shelf (Shows information about the shelves including model numbers)

Diagnostics
Press DEL at boot up during memory test followed by boot_diags and select all (Diagnostic tests for a new install)
priv set diags (Enter diagnostics CLI mode from the Ontap CLI)
priv set (Return to normal CLI mode from diagnostics mode)

Software
software list (Lists software in the /etc/software directory)
software get http://x.x.x.x/8.0_e_image.zip 8.0_e_image.zip (Copy software from http to software directory)
software delete (Deletes software in the /etc/software directory)
software update 8.0_e_image.zip -r (Install software. The -r prevents it rebooting afterwards)

Baseboard Management Controller BMC


bmc status (shows the status of the BMC remote management interface)
bmc setup (BMC remote management interface setup)

Service Port SP
sp status (shows the status of the SP remote management interface)
sp setup (SP remote management setup)

ACP (Alternate Control Path)


options acp.enabled on (Turns on ACP)
storage show acp -a (show ACP status)

Root Volume
If you have a 32-bit root volume that you wish to convert to 64-bit, the best way I found is to snapmirror the root volume to a 64-bit aggregate, break the snapmirror, set the
new root volume as root, and either failover and failback the filer, or reboot.

Aggregates
aggr create aggregate_name (Creates an Aggregate)
aggr destroy aggregate_name (removes an Aggregate)
aggr offline aggregate_name (takes an Aggregate offline)
aggr online aggregate_name (bring an Aggregate online)
aggr options aggregate_name root (makes an Aggregate root|Only use if your Root Aggregate is damanged)
aggr status (shows status of all aggregates)
aggr status aggregate_name (show status of a specific Aggregate)
aggr status -r aggr0 (shows the root volume on aggr0 and the disk layout)
aggr status -s aggr0 (shows spare disks on aggr0)

1 of 7 4/2/15, 5:00 AM
Netapp Data Ontap CLI Pocket Guide http://www.sysadmintutorials.com/tutorials/netapp/netapp-dat...

aggr status -v aggr0 (MUST BE DONE IN PRIV SET DIAG MODE. Shows more detailed information of the aggregate status)
aggr show_space aggregate_name (shows specific aggregate space information)
aggr options aggregate_name nosnap=on (Disable snapshot autocreation)
aggr options aggregate_name raidsize=x (x being the number of drives in the RAID)
aggr scrub status -v (MUST BE DONE IN PRIV SET DIAG MODE. Shows scrub status of the aggregate)
aggr scrub resume (MUST BE DONE IN PRIV SET DIAG MODE. Resumes a susepended scrub)
aggr scrub suspend (MUST BE DONE IN PRIV SET DIAG MODE. Suspends a current scrub process)
aggr scrub start (MUST BE DONE IN PRIV SET DIAG MODE. Starts a new scrub process)
reallocate start -f -p /vol/volname (Run in priv set advanced, used after adding disks to an aggregate to evenly distribute blocks amongst raid groups)
snap reserve -A aggregate_name 0 (Set Aggregate snap reserve to 0% or any number you enter)
snap list -A aggregate_name (Lists snapshots on specified aggregate)
snap delete -A aggregate_name (Deletes a snapshot on a specified aggregate)
snap sched -A aggregate_name x x x@x,x,x (Creates a snapshot shedule in weeks days hours@time ie 0 2 1@9 means no weekly snaps, 2 daily, 1 hourly @ 9am)

Volumes
vol create volume_name (Creates a volume)
vol autosize volume_name (Shows autosize settings for a given volume)
vol autosize volume_name on|off (Turns Volume autosize on or off)
vol options volume_name (Lists volume options)
vol size volume_name + size k|m|g|t (increase volume size by KB, MB, GB or TB)
vol status -f (lists broken or failed disks)
vol status -s (lists spare disks)
vol status -r (lists raid groups)
vol scrub status -v (Shows the scrubbing status of volumes)
vol options nosnapdir on|off (enables or disables snapshot visibility from the volume or LUN level)

Qtrees
qtree create /vol/volume_name/qtree_name (Create a qtree within a volume)
qtree security /vol/volume_name/qtree_name unix|ntfs|mixed (Change security settings of a qtree)
qtree stats qtree_name (Shows CIFS or NFS ops/sec for a given qtree)
qtree status (Displays all your Qtrees)

Snapshots
snap create volume_name snapshot_name (create a snapshot)
snap list volume_name (List snapshots for a volume)
snap delete volume_name snapshot_name (delete a snapshot on a volume)
snap delete -a volume_name (Deletes all snapshots for a volume)
snap autodelete volume_name show (Shows snapshot autodelete settings for a volume)
snap restore -s snapshot_name volume_name (Restores a snapshot on the specified volume name)
snap sched volume_name weeks days hours@time (Creates a snapshot schedule on a volume i.e. snap sched volume 4 5 1@07 Weekly Snapshots are created at
midnight on each Sunday, Daily snapshots are created each day except Sunday at midnight)
snap delta volume_name (Shows delta changes between snapshots for a given volume)
snap reserve volume_name (Shows the snap reserve for a given volume)
snap reclaimable volume_name snapshot_name (Shows the amount of space reclaimable if you remove this snapshot from the volume)
options cifs.show_snapshot on (Allows snapshot directory to be browse-able via CIFS)
options nfs.hide_snapshot off (Allows snapshot directory to be visible via NFS)

SnapMirror
options snapmirror.enable on (turns on SnapMirror. Replace on with off to toggle)
rdfile /etc/snapmirror.allow (Performed on the Source Filer. You should see you destination filers in this file.)
wrfile /etc/snapmirror.allow (Performed on the Source Filer. Overwrites the file with the specified destination filer name and ip address)
vol restrict volume_name (Performed on the Destination. Makes the destination volume read only which must be done for volume based replication. Dont use for Qtree
based replication)
snapmirror initialize -S srcfiler:source_volume dstfiler:destination_volume (Performed on the destination. This is for full volume mirror. For example snapmirror initialize -S
filer1:vol1 filer2:vol2)
snapmirror initialize -S srcfiler:/vol/vol1/qtree dstfiler:/vol/vol1/qtree (Performed on the destination. Performs the same as the command above but for Qtrees only)
snapmirror initialize -S srcfiler/vol/vol1/- dstfiler:/vol/vol1/qtree (Performed on the destination. Performs volume to qtree replication. Includes all luns, exports on the source
volume)
snapmirror status (Shows the status of snapmirror and replicated volumes or qtrees)
snapmirror status -l (Shows much more detail that the command above, i.e. snapshot name, bytes transferred, progress, etc)
snapmirror quiesce volume_name (Performed on Destination. Pauses the SnapMirror Replication. If you are removing the snapmirror relationship this is the first step.)
snapmirror break volume_name (Performed on Destination. Breaks or disengages the SnapMirror Replication. If you are removing the snapmirror relationship this is the
second step followed by deleting the snapshot)
snapmirror resync volume_name (Performed on Destination. When data is out of date, for example working off DR site and wanting to resync back to primary, only
performed when SnapMirror relationship is broken)
snapmirror update -S srcfiler:volume_name dstfiler:volume_name (Performed on Destination. Forces a new snapshot on the source and performs a replication, only if an
initial replication baseline has been already done)
snapmirror release volume_name dstfiler:volume_name (Performed on Destination. Removes a snapmirror destination)
/etc/snapmirror.conf (edit or wrfile this file on the destination filer or vfiler to enter in a snapmirror schedule. i.e. srcfiler:vol1 dstfiler:vol1 15 * * * This will replicate every 15
minutes. Each * represents a value. Starting from right to left you have day of week, month, day of month, hour minute. Minute 0-59, hours 0-23, day-of-month 1-31,
day-of-week 0 for Sunday 6 Saturday) Each value can only be a number.)
/vol/vfiler_vol/etc/snapmirror.conf (read or write this file for snapmirror configurations on a vfiler. vfiler_vol being the first volume with the /etc in the vfiler)
priv set diag followed by snapmirror break -h followed by priv set. (If for some reason you snapmirror relationship has been orphaned, meaning it doesnt exist in
snapmirror status on the source but does exist on the destination, you can use these three commands to force the destination to become read/write. You can then do snap
list and find the baseline snapshot for the destination. Followed by snap delete of the baseline snapshot. This will remove the snapmirror relationship if all else fails. Lastly
dont forget to remove the entry from snapmirror.conf)

Cluster
cf enable (enable cluster)
cf disable (disable cluster)
cf takeover (take over resources from other controller)
cf giveback (give back controller resources after a take over)

vFiler Multistore
vfiler limit (Performed on the host to see what the limit of vfilers is)
vfiler limit 16 (Performed on the host to change the limit of vfilers to 16 or any number you specify. Check the documentation for Memory Requirements before doing this)
vfiler status (Displays the status of the vfiler i.e. running or stopped)
vfiler status -r (On the host system. Shows which volumes are running on each vfiler)
vfiler rename old_vfiler_name new_vfiler_name (Renames a vfiler)

2 of 7 4/2/15, 5:00 AM
Netapp Data Ontap CLI Pocket Guide http://www.sysadmintutorials.com/tutorials/netapp/netapp-dat...

vfiler run vfiler_name setup (Runs the vfiler setup wizard)


vfiler run vfiler_name cifs setup (Runs the cifs setup wizard for a vfiler)
ipspace create ipspacename (Creates an ipspace needed when 2 or more vfilers use the same network subnets)
ipspace list (Lists the available ipspaces)
ipspace assign ipspacename interface_name (Assigns the interface to an ipspace.)
ipspace destroy ipspace_name (Removes/Deletes an ipspace)
vfiler create vfiler_name -s ipspace_name -i x.x.x.x /vol/volume_name or qtree_name (Creates a vfiler name with ip address x.x.x.x and assigns the volume or qtree to the
vfiler. The -s is optional)NOTE: Creating a qtree as the base vfiler does not allow you to enable snapmirror. You must create the base as a volume!
vfiler add vfiler_name -i x.x.x.x /vol/volume_name (Adds an ip address and additional volume (can be qtree) to an existing vfiler name)
vfiler remove vfiler_name -i x.x.x.x /vol/volume_name (Removes an IP address and volume from an existing vfiler)
vfiler destroy vfiler_name (Deletes/removes a vfiler)
vfiler rename vfiler_name_old vfiler_name_new (Renames a vfiler from old name to new name)
vfiler context vfiler_name (Changes CLI into the context of the vfiler name)
vfiler allow vfiler_name proto=cifs proto=nfs proto=iscsi (Allows the following protocols cifs, nfs and iscsi. Disallows rsh, ssh, ftp and http)
vfiler stop vfiler_name (Stops a vfiler instance)
vfiler start vfiler_name (Starts a vfiler instance)
vfiler run vfiler_name route add default x.x.x.x 1 (Adds a default route to a vfiler. Performed from vfiler0)
route add x.x.x.x/x x.x.x.x 1 (Adds a route in a vfiler)

To add extra vlans to a vfiler you must do the following:


Check the ip space that the vfiler is using by typing ipspace list
Create the vlan interface on the host i.e. vif0-360 for vlan 360
Assign the interface to the ip space of the vfiler i.e. ipspace assign ipspace_name vif0-360
Add the ip address you wish to use on the vlan interface to the vfiler i.e. vfiler add vfiler_name -i 192.168.1.1
Once the vfiler has this ip address in its config we can add it onto the interface i.e. ifconfig vif0-360 192.168.1.1 netmask 255.255.255.0

Autosupport
options autosupport.support.enable on (Turns Autosupport on)
options autosupport.support.enable off (Turns Autosupport off)
autosupport.doit description (creates an autosupport alert with a user defined description)

Hot Spares
Any functioning disk that is not assigned to an aggregate but is assigned to a controller functions as a hot spare disk
disk show
vol status -r (displays which disks are allocated as spare)

Disks
disk show (Show disk information)
disk show -n (Show unowned disks)
disk assign 0d.02.0 -s unowned (Changes ownership from owned to unowned or to other cluster member)
disk assign 0d.02.0 (assigns the disk to the controller you perform the command on)
options disk.auto_assign off (turns auto assign of unowned disks to controllers to off)
options disk.auto_assign on (turns auto assign of unowned disks to controllers to on)
storage show disk -p (displays primary, secondary port, shelf and bay in a metro cluster)

Luns
lun setup (runs the cli lun setup wizard)
lun create -s 10g -t windows_2008 -o noreserve /vol/vol1/lun1 (creates a lun of 10GB with type Windows 2008, sets no reservation and places it in the following volume or
qtree)
lun offline lun_path (takes a lun offline)
lun online lun_path (brings a lun online)
lun show -v (Verbose listing of luns)
lun move /lun_path_source /lun_path_destination (Move lun from source to destination)
lun resize -f lun_path +|- new_size k|m|g|t (Resizes a lun by adding space (+) or subtracting space (-) Note: a lun can only ever grow 10x its original size)
lun map /vol/vol1/lun1 igroup_name (Maps lun1 to the igroup_name)
lun alignment show (MUST BE DONE IN PRIV SET DIAG MODE. Shows which luns are aligned and which are not)

Fiber FCP
fcadmin config -t taget 0a (Changes adapter from initiator to target)
fcadmin config (lists adapter state)
fcadmin start (Start the FCP service)
fcadmin stop (Stop the FCP service)
fcp show adapters (Displays adapter type, status, FC Nodename, FC Portname and slot number)
fcp nodename (Displays fiber channel nodename)
fcp show initiators (Show fiber channel initiators)
fcp wwpn-alias set alias_name (Set a fiber channel alias name for the controller)
fcp wwpn-alias remove -a alias_name (Remove a fiber channel alias name for the controller)
igroup show (Displays initiator groups with WWNs)

iSCSI
iscsi start (Start the iscsi service)
iscsi stop (Stop the iscsi server)
iscsi status (Show whether iscsi server is running or not running)
iscsi interface show (Show which interfaces are enabled or disabled for iscsi)
iscsi interface enable interface_name (Enable an interface for iscsi)
iscsi interface disableinterface_name (Disable an interface for iscsi)
iscsi nodename (Display the controllers iscsi nodename)
igroup show (Displays iSCSI initiators)
igroup create -i -t vmware sqlcluster_igroup (Creates an Initiator Group called sqlcluster_igroup with OS type vmware)
igroup add sqlcluster_igroup iqn.1991-05.com.microsoft:sqlcluster1.vmlab.local (Assigns the following iscsi initiator to the sqlcluster_igroup. This can also be FCP
addresses)

Cifs
cifs setup (cifs setup wizard)
cifs terminate (terminate the cifs service)
cifs restart (restarts cifs)
cifs shares (displays cifs shares)
cifs status (show status of cifs)
cifs lookup SID|name (Either displays the SID if you type in the name or name if you type in the SID)

3 of 7 4/2/15, 5:00 AM
Netapp Data Ontap CLI Pocket Guide http://www.sysadmintutorials.com/tutorials/netapp/netapp-dat...

cifs sessions (Show you current cifs sessions)


cifs sessions -s username (Shows the current session for a user)
cifs broadbast -v volume_name message (Broadcast a message to all users connected to volume_name)
cifs shares -add share_name /vol/volume_name/qtree_name (Create a cifs share on a specific volume or qtree)
cifs shares -delete share_name (Deletes a share name)
cifs shares share_name (Displays full path and permissions of the share)
cifs access share_name -g user_rights (Grants specific user rights to the share)
cifs access share_name user_name permission (Grants a specific permission to a user for a share. Permissions = Full Control, Change, Read, No Access)
cifs domain info (Lists information about the filers connected Windows Domain)
cifs testdc ip_address (Test a specific Windows Domain Controller for connectivity)
cifs prefdc (Displays configured preferred Windows Domain Controllers)
cifs prefdc add domain address_list (Adds a preferred dc for a specific domain i.e. cifs prefdc add netapplab.local 10.10.10.1)
cifs prefdc delete domain (Delete a preferred Windows Domain Controllers)
cifs gpresult (Displays which Windows Group Policies apply to this filer)
cifs gpupdate (Forces an update of Windows Group Policy)
cifs top (Performance data for cifs. cifs.per_client_stats.enable option must be on to use this feature)
vscan on (Turns virus scanning on)
vscan off (Turns virus scanning off)
vscan reset (Resets virus scanning)

NFS
nfs setup (Runs the NFS setup wizard)
/etc/export (Enter in your export information here and save the file. Then proceed with exportfs -a to update memory buffer)
exportfs (Displays current exports)
exportfs -p path (Adds exports to the /etc/exports file)
exportfs -uav (Unexports all current exports)
exportfs -u path (Unexports a specific export from memory)
exportfs -z path (Unexports a specific export and also removes it from /etc/exports)
exportfs -a (Updates memory buffer with contents in /etc/exports)
nfsstat -d (Displays NFS statistics)

HTTP Admin
options httpd.admin.enable on (Turns on http web admin, na_admin)
options httpd.admin.access host=x.x.x.x,x.x.x.x (Allows admin access for specific hosts separated by a comma)

SIS (Deduplication)
sis status (Show SIS status)
sis config (Show SIS config)
sis on /vol/vol1 (Turn on deduplication on vol1)
sis config -s mon-fri@23 /vol/vol1 (Configure deduplication to run every monday Friday at 11pm on vol1)
sis start -s /vol/vol1 (Run deduplication manually on vol1)
sis status -l /vol/vol1 (Display deduplication status on vol1)
df -s vol1 (View space savings with deduplication)
sis stop /vol/vol1 (Stop deduplication on vol1)
sis off /vol/vol1 (Disables deduplication on vol1)

User Accounts
useradmin user add user_name -g group_name (Adds a user to a group)
useradmin user list (Lists current users)
useradmin user list user_name (List specific user information)
useradmin group list (Lists current groups)
useradmin group delete group_name (Deletes a specific group name)
useradmin group modify group_name -g new_group_name (Modify group name)
useradmin user delete user_name (Delete a specific user)
useradmin user modify user_name -g group_name (Adds a user to a group)
useradmin domain user add user_name -g group_name (Adds a Windows Domain user to a local group)
useradmin domain user list -g group_name (List Windows Domain users in a specific group)

DNS
dns flush (Flushes the DNS cache)
/etc/resolv.conf (edit this file to change your dns servers)

NDMPD
ndmpd status (check status)
ndmpd on|off (turns ndmpd on or off)
ndmpd version (displays version information)
ndmpd version 4 (set ndmpd version to 4)
options ndmpd (Display ndmpd options)

Reading and Writing Files (Deduplication)


rdfile path/file (Reads a file)
wrfile path/file (Writes to a file. Warning this method overwrites the file. Make sure you copy out original contents if you wish to keep it. If you havent used this before try on
the simulator.)
wrfile -a path/file (Writes to a file by appending the changes)

Logging
/etc/messages (All logging is for the system is stored here)

VIF
vif status (Displays the status of VIF interfaces)
vif create lacp vif0 ip e0a,e0b,e0c,e0d (Create a vif interface named VIF0 using lacp and a load balancing method of IP, bundled with interface e0a, e0b, e0c, e0d)
vif add vif0 e0a (Adds a down interface into an existing VIF)
vif destroy vif0 (deletes a VIF interface)

Network
vlan create vif0 10 (create a vlan on interface vif0. The interface will be vifo-10)
vlan delete vif0 10 (deletes the vlan interface vif0-10)
ifconfig vif0-10 x.x.x.x netmask x.x.x.x partner vif0-10 (Sets IP information on the interface named vif0-10 with a partner interface of vif0-10)
route add default 192.168.1.1 1 (Adds a default route of 192.168.1.1 with metric 1)

4 of 7 4/2/15, 5:00 AM
Netapp Data Ontap CLI Pocket Guide http://www.sysadmintutorials.com/tutorials/netapp/netapp-dat...

Performance
sysstat -x 1 (displays per second statistics for CPU, iSCSI, FCP, CIFS, NFS, Disk Util, etc)
sysstat -m 1 (displays per second statistics for each CPU)
sysstat -M 1 (MUST BE DONE IN PRIV SET DIAG MODE. Displays per second statictics for CPUs, Kahuna, WAFL, etc)
statit b (MUST BE DONE IN PRIV SET DIAG MODE. Starts a performance snapshot)
statit e (MUST BE DONE IN PRIV SET DIAG MODE. Stops a performance snapshot and displays the stats on screen. TIP: Turn on logging in your terminal program before
running this command)

If you have any technical questions about this tutorial or any other tutorials on this site, please open a new thread in the forums and the community will be able to help you
out.

Disclaimer:
All the tutorials included on this site are performed in a lab environment to simulate a real world production scenario. As everything is done to provide the most accurate steps to date, we
take no responsibility if you implement any of these steps in a production environment.

5 of 7 4/2/15, 5:00 AM
Netapp Data Ontap CLI Pocket Guide http://www.sysadmintutorials.com/tutorials/netapp/netapp-dat...

AROUND THE WEB WHAT'S THIS?

Financial Times
4D Magazine As a mathematician and statistician this appeals
These 24 photos will change your life. to my inner geek

TalkMarkets

What Special Forces Can Teach Us About Wibki

Investing This is How Google is Killing the Web

ALSO ON SYSADMIN TUTORIALS

New Microsoft System Center 2012 R2 VMM Tutorial 3 comments Veeam Backup and Replication 6.5 Free Edition 2 comments

Microsoft Outlook Email Prompting for Authentication 1 comment VMware vSphere Datastore UUID Change 2 comments

27 Comments Sysadmin Tutorials ! Login

Recommend 6 Share Sort by Best

Join the discussion

keggman12 4 years ago


I just built a new 3210 running 8.0.1 and while the root vol was on a 32bit aggregate, I built a new 64bit aggregate, moved the root volume
(ndmpcopy) and changed the root vol to the new path (vol options newvolumename root) and was able to delete the 32bit formerly root
aggr and get its disks back.
2 Reply Share

David Rodriguez Mod > keggman12 3 years ago

I used this method today, with 8.1RC2 though instead of using ndmpcopy, I used snapmirror to snapmirror the root volume to a
64-bit aggregate (only supported in 8.1 though), changed the root volume to the new volume on the aggregate, rebooted. Then I
could delete the previous root volume and aggregate and get the disks back. I alo had to re-create the home directory share for cifs
to point to the new location.
Reply Share

Keggman12 > David Rodriguez 3 years ago


Nice. Did you have to re-run secureadmin (or whatever the command is) to regenerate the SSL certificate so https
administration would work? I remember having to do that, but it's been a while now.
Reply Share

David Rodriguez Mod > Keggman12 3 years ago

It was a brand new setup so had to generate SSL keys out of the box.
Reply Share

Nithinrumesh 4 years ago


Nice work mate.God bless you
1 Reply Share

Saptagiri > Nithinrumesh 3 years ago


Fantastic greate work buddy
Reply Share

Le 9 months ago
Can someone point me to where ssh keys are stored. Need to set up a ssh connection to Netaps. New to product. I am just
troubleshooiting an appliance trying to make a secure ssh connection to Netapps system. I am using a vm for testing. 8.1.2 Thank you
Reply Share

Razia 2 years ago

6 of 7 4/2/15, 5:00 AM
Netapp Data Ontap CLI Pocket Guide http://www.sysadmintutorials.com/tutorials/netapp/netapp-dat...

Copyright 2015 Sysadmin Tutorials

Powered by Flexibility 3

4
StumbleUpon
Like Submit
StumbleUpon 0 Reddit 0 Filament.io Made with Flare More Info 19 Flares

7 of 7 4/2/15, 5:00 AM

Anda mungkin juga menyukai