viernes, 5 de septiembre de 2014

Configurando la tarjeta de red en Linux

1. Primero que nada asumir privilegios de root 

Esto se logra con el comando
$ su
Donde te solicitara la clave del super usuario

2. Comprobacion de HW

Comprobar si la targeta es detectada por linux  al menos a nivel del Hardware con el comando:
# lspco
esto debe entregar algo parecido a:

[root@localhost /]# lspco
00:00.0 Host bridge: Intel Corporation Haswell DRAM Controller (rev 06)
00:02.0 VGA compatible controller: Intel Corporation Haswell Integrated Graphics Controller (rev 06)
00:03.0 Audio device: Intel Corporation Haswell HD Audio Controller (rev 06)
00:14.0 USB controller: Intel Corporation Device 8cb1
00:16.0 Communication controller: Intel Corporation Device 8cba
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-V
00:1a.0 USB controller: Intel Corporation Device 8cad
00:1b.0 Audio device: Intel Corporation Device 8ca0
00:1c.0 PCI bridge: Intel Corporation Device 8c90 (rev d0)
00:1c.2 PCI bridge: Intel Corporation Device 8c94 (rev d0)
00:1c.3 PCI bridge: Intel Corporation Device 8c96 (rev d0)
00:1c.6 PCI bridge: Intel Corporation Device 8c9c (rev d0)
00:1d.0 USB controller: Intel Corporation Device 8ca6
00:1f.0 ISA bridge: Intel Corporation Device 8cc4
00:1f.2 SATA controller: Intel Corporation Device 8c82
00:1f.3 SMBus: Intel Corporation Device 8ca2
02:00.0 Ethernet controller: Qualcomm Atheros Killer E2200 Gigabit Ethernet Controller (rev 10)
03:00.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 41)
05:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9172 SATA 6Gb/s Controller (rev 12)
Como se ve el comando lsoci  nbos despliega todo lo que esta conectado a nuestro bus PCI, en esta lista deberemos buscar las que digas Ehernet Controller que serán nuestras tarjetas de red.

00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-V
02:00.0 Ethernet controller: Qualcomm Atheros Killer E2200 Gigabit Ethernet Controller (rev 10)

Como se ve en este caso tenemos 2 de ellas.

3. Revisar configuracion


Para validar si esta configurada usamos: ifconfig comando que nos lista la configuracion de todas las tarjetas o interfaces de red que tenemos en el sistema:

[root@localhost /]# ifconfig
eth0      Link encap:Ethernet  HWaddr 74:D4:35:E5:CE:5C  
          UP BROADCAST RUNNING PROMISC  MTU:1500  Metric:1
          RX packets:46922317 errors:0 dropped:0 overruns:0 frame:0
          TX packets:30986715 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1792520249 (1.6 GiB)  TX bytes:2183999328 (2.0 GiB)
          Interrupt:20 Memory:f7e00000-f7e20000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:137658 errors:0 dropped:0 overruns:0 frame:0
          TX packets:137658 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:260621913 (248.5 MiB)  TX bytes:260621913 (248.5 MiB)


viernes, 25 de julio de 2014

Comandos para unidad externa por USB Citrix XenServer 6.2

Lo primero que debemos hacer es localizar en que /dev/ se encuentra localizado el disco duro o la usb que hemos conectado al server... eso se logra con el comando:

[root@localhost~] # fdisk -l

Lo cual te arrojara un resultado similar a esto:

WARNING: GPT (GUID Partition Table) detected on '/dev/sdc'! The util fdisk doesn't support GPT. Use GNU Parted.

Disk /dev/sdc: 3000.5 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes


 La parte resaltada es donde se encuentras los dispositivos conectados, también aparecerán todos los discos duros conectados pero es facil identificar por el tamaño la unidad que estas buscando.

Despues procedemos a montar la unidad en el directorio /mnt yo te recomiendo crear una carpeta  en este directorio sobretodo si debes montar mas de una unidad al mismo tiempo; crear directorios lo puedes hacer con el comando:

[root@localhost~] # mkdir [nombre de tu carpeta]

[root@localhost~] # mkdir removalHD

Despues montamos la unidad en dicho directorio; monta una unidad es la forma en que Linux comienza a utulizar el dispositivo contectado

[root@localhost ~] #mount /dev/[el valor que se vio en azul] /mnt/[directorio creado] -t [tipo de paritcion a montar]

el ejemplo queda asi montando un disco duro externo que se usa con windows por eso tiene ntfs

[root@localhost ~] #mount /dev/sdd1 /mnt/removalHD -t ntfs

Puedes ver la descripción completa si ejecutas en la consola:

[root@localhost ~] #man mount

eso te da la descripción completa de como funciona el comando mount

una ves que termines con el uso del disco o usb no olvides desmontarlo que es lo mas pareciso a "retirar con seguridad de windows" de esta forma ni tu unidad ni tu sistema linux sera dañado...

solo tecleas

[root@localhost ~] #umount  [Carpeta donde esta la unidad a desmontar]

en nuestro ejemplo

[root@localhost ~] #umount /mnt/removalHD

Espero les sea util

martes, 29 de abril de 2014

Lectura de un archivo de texto plano C#

Cascaron DataLayerIng Lo mas sencillo pero como es util para trabajar con datos. sobretodo cuando todo se exporta a CSV


            String FileName="";

            OpenFileDialog openFiledialog = new OpenFileDialog();
            if (openFiledialog.ShowDialog() == DialogResult.OK)
            {
                FileName = openFiledialog.FileName;
            }


            StreamReader objReader = new StreamReader(FileName);
            string sLine = "";
            ArrayList arrText = new ArrayList();
            sLine = objReader.ReadLine();
            while (sLine != null)
            {
                sLine = objReader.ReadLine();
                if (sLine != null)
                    arrText.Add(sLine);
            }
            objReader.Close();

REquiere incluir:
           using System.IO;
           using System.Collections;

miércoles, 5 de febrero de 2014

Snippet Basico Data Layer C# con Entity Framwork 6.0

Cascaron DataLayerIng Al utilizar C# con Entity Framework  y trabajando por capas lo mas común es crear un capa de datos, para hacer esto lo mas básico para una capa de datos es el Clásico ABC. Para ello y para avanzar mas rápido en nuestros desarrollo sobre Visual Studio están las herramientas conocidas como Snippets(Sobre estas comente en otra publicacion ) y hoy me permito publicar el código de un Snippet para visual Studio sobre C# que permite crear rápidamente las clases de Data para nuestro proyecto.

Espero les sea útil a mi me ayudo a terminar mas rápido; contiene una funciones de:

  • Búsqueda por ID
  • Devolver Todos los registros
  • Inserción
  • Actualización
  • Borrado
Obviamente si requieren mas funciones por default pueden modificarlo  a su gusto. 


  
    
Cascaron DataLayer Ing. Florentino Hernández Guzmán Cascaron Basico de DataLayer con Entity Framework 6.0 CascaronDatalayer
Entity Entidad sobre la cual se describe la Clase EntityName ID nombre del ID de la entidad para la que se desarrolla la clase entityId ClassName Nombre de la Clase ClassName Context Contexto de conexion a la base de datos MainWindow.db Variable Variable sobre las opciones _var Proyecto Nombre del Proyecto ProyectName Contenedor de Entitys Sub Carpeta de donde se encuentran los elementos de Entitys Entitys /// Clase que almacena los accesos a datos de la entidad $Entity$ /// public static class $ClassName$DL { /// /// Clase que devuelve un usuarios basandose en su ID /// para corroborar el acceso /// /// ID del $Entity$ A localizar /// Null son incorrectos o $Entity$ si es localizado public static $Entity$ getByID(Decimal $ID$) { try { $Entity$ $Variable$ = $Context$.$Entity$.Find($ID$); return $Variable$; } catch (Exception ex) { throw ex; } } /// /// Clase que devuelve todos los Obejtos $Entity$ conenidos en la BD /// /// Null son incorrectos o $Entity$ si es localizado public static List<$Entity$> getAll() { try { List<$Entity$> $Variable$ = $Context$.$Entity$.ToList(); return $Variable$; } catch (Exception ex) { throw ex; } } /// /// Inserta la Informacion de un objeto $ClassName$ en la Base de Datos /// /// Objeto $Entity$ a insertar /// Numero de registros afectados public static int Insert($Entity$ $Variable$) { bool saveFailed = false; using (TransactionScope scope = new TransactionScope()) { try { int result = 0; do { try { $Context$.$Entity$.Add($Variable$); result= $Context$.SaveChanges(); } catch (System.Data.DBConcurrencyException ex) { saveFailed = true; } } while (saveFailed); return result; } catch (Exception ex) { throw ex; } } } /// /// Actualiza la Informacion de un objeto $ClassName$ en la Base de Datos /// /// Objeto $Entity$ a Actualizar /// Numero de registros afectados public static int Update($Entity$ $Variable$) { bool saveFailed = false; using (TransactionScope scope = new TransactionScope()) { try { int result = 0; do { try { var entry = $Context$.Entry($Variable$); $Context$.$Entity$.Attach($Variable$); entry.State = EntityState.Modified; result = $Context$.SaveChanges(); } catch (System.Data.DBConcurrencyException ex) { saveFailed = true; } } while (saveFailed); return result; } catch (Exception ex) { throw ex; } } } /// /// Elimina la Informacion de un objeto $ClassName$ en la Base de Datos /// /// Objeto $Entity$ a Eliminar /// Numero de registros afectados public static int Delete($Entity$ $Variable$) { bool saveFailed = false; using (TransactionScope scope = new TransactionScope()) { try { int result = 0; do { try { var entry = $Context$.Entry($Variable$); $Context$.$Entity$.Attach($Variable$); entry.State = EntityState.Deleted; result = $Context$.SaveChanges(); } catch (System.Data.DBConcurrencyException ex) { saveFailed = true; } } while (saveFailed); return result; } catch (Exception ex) { throw ex; } } } } }]]>