Blog

CNERIS.COM

CNERIS.COM

Las aplicaciones móviles están en pleno auge. Para muchas empresas, es algo indispensable dentro de su estrategia de marketing. Pero, bien es cierto, que es algo muy técnico que a veces cuesta explicar a los clientes que, lógicamente, no tienen ningún conocimiento sobre el desarrollo de aplicaciones móviles. Por eso, en este post, vamos a responder las preguntas más frecuentes en el desarrollo de apps móviles. ¡Empezamos!

1. ¿QUÉ COSTE TENDRÁ MI APP?
Esta es una de las preguntas más frecuentes y más difíciles de responder. Hay muchos tipos de aplicaciones móviles y muchas funcionalidades diferentes. Así que esto variará en función de lo que quieras. Por eso, para poder decirte el precio, hemos de conocer la descripción funcional. Pero, si no has hecho esto aún, ¡no te preocupes! Podemos ayudarte a definir tu app antes de poder darte un presupuesto.

2. ¿QUÉ TIEMPO LLEVARÁ DESARROLLAR LA APLICACIÓN MÓVIL?
El tiempo dependerá de lo anterior. En función de la envergadura de tu app móvil, el coste será mayor o menos. Pero, podría oscilar entre 2 y 6 meses.

3. ¿QUÉ DEBO APORTAR COMO CLIENTE?
Esto es clave. Para el desarrollo de una app hay que entender al cliente. Así que deberás responder cuestiones como: qué problema quiero que resuelva la app, objetivo de la app, de dónde se obtendrán los datos que aporta la app, monetización, etc. Toda esta información ayudará a saber exactamente qué tiene en mente el cliente.

Siempre recomendamos que el cliente haya trabajado un briefing con las funcionalidades que quiere que tenga la app, la prioridad de estas y cualquier otra información relacionada con la app.

4. ¿CUÁLES SON LAS FASES DEL DESARROLLO DE APPS MÓVILES?
Dividimos el desarrollo de apps móviles en varias fases:

Estudio de la funcionalidad. En primer lugar, revisamos la documentación aportada por el cliente.
Tras estudiar la documentación aportada, nos reunimos con el cliente para aclarar dudas y validar conjuntamente el proyecto final.
Exponemos al cliente la solución propuesta junto con la planificación y el presupuesto.
Una vez validado y aceptado presentamos el UI (interfaz de usuario) teniendo en cuenta, en base a nuestra experiencia el UX (experiencia de usuario). Esta parte es muy importante, ya que tenemos que meternos en la mente del usuario para que tenga una buena experiencia tanto de navegabilidad como una buena percepción estética.
Una vez definido esto, ¡nos ponemos manos a la obra con el desarrollo de la app móvil!
Concluido el desarrollo, hacemos varias pruebas y chequeos para comprobar que todo funciona correctamente.
¡Por fin! Publicamos la app móvil.

5. ¿QUÉ ES EL BACKEND Y QUIÉN SE ENCARGA DE DESARROLLARLO?
El backend, también denominado CMS o servidor de la aplicación móvil, centraliza las peticiones que se hacen desde el dispositivo móvil. Es decir, cuando el usuario hace una petición en la app, el backend accede a su repositorio de datos, encuentra y filtra la información solicitada y la devuelve al usuario.

Casi siempre, en el desarrollo de apps se necesita un servidor, y su desarrollo tiene la inversión como mínimo de una aplicación sencilla. Pero, bien es cierto, que hay empresas que ya tienen funcionando un CMS por lo que la aplicación móvil lo utilizará para obtener los datos. Y si, por el contrario, no existe todavía un CMS, no habría problema,

6. ¿QUIÉN SE OCUPA DEL BRANDING DE MI APP MÓVIL Y DE LA WEB?
Habría que separar el desarrollo de una app móvil, del branding de esta y de la página web. 

7. ¿QUÉ PASA SI TENGO YA ALGO DESARROLLADO?
Si ya tienes algo desarrollado, es importante hacer una auditoría previa para ver si lo realizado cumple con nuestros requisitos de calidad. Una vez hecho esto, podríamos presupuestar la app como en cualquier otro caso.

8. ¿PUEDEN SURGIR PROBLEMAS DURANTE EL DESARROLLO?
Sí, y quien diga que no, está faltando a la verdad probablemente. Como en casi cualquier proyecto, durante el desarrollo siempre hay tareas que parecían fáciles y se vuelven más complejas. No obstante, raramente causará un coste adicional si el presupuesto ya estaba fijado. ¡Siempre contamos con ello! Pero, lógicamente, si el imprevisto surge por parte del cliente que quiere modificar o añadir algo al desarrollo, el presupuesto sí que puede verse modificado.

9. ¿QUÉ HAGO SI DETECTO ERRORES DESPUÉS DE PUBLICAR MI APP?
Esto puede pasar, ya que Android tiene diferentes versiones y los smartphones tienen especificaciones muy distintas entre sí.

Si no has desarrollado tu app con nosotros, pero necesitas testearla y corregir errores, ¡consúltanos sin compromiso!

10. ¿CÓMO PROMOCIONO MI APP PARA MEJORAR SU SALIDA AL MERCADO?
Tras el lanzamiento de una app móvil es muy importante promocionarla.  Podremos usar diferentes herramientas como Google Ads, Facebook Ads, mediante SEO, campañas de las tiendas de aplicaciones, creando una landing page, etc. 

11. ¿EXISTEN OTROS COSTES ADICIONALES EN UN PROYECTO DE APLICACIONES?
Probablemente. Por ejemplo, si dispones de bases de datos, deberás contratar un servidor (si deseas hacerlo con nosotros, puedes consultarnos y te lo incluiremos en el presupuesto). Por otro lado, para publicar las aplicaciones en las tiendas de aplicaciones deberás tener una cuenta en cada una, y estas no son gratuitas.

Fuente

El sistema operativo de Android se ha convertido gracias a los dispositivos móviles, sin ningún tipo de dudas. En el Sistema Operativo más utilizado del mundo. Si eres un desarrollador, crear aplicaciones para Android, será una de tus mejores opciones de aquí al futuro.

A continuación, vas a encontrar las 50 preguntas más frecuentes, que se hace un desarrollador que se intenta iniciar en la programación de Android.

 

1. ¿Qué es Android?

Es un sistema operativo de código abierto que se utiliza principalmente en dispositivos móviles, como teléfonos celulares y tabletas. Es un sistema basado en el kernel de Linux que ha sido equipado con componentes que permiten a los desarrolladores crear y ejecutar aplicaciones que pueden realizar funciones básicas y avanzadas.

2. ¿Qué es el SDK de Google Android?

El SDK de Android de Google es un conjunto de herramientas que los desarrolladores necesitan para escribir aplicaciones en dispositivos Android, que contiene una interfaz gráfica que emula un entorno portátil de Android, lo que permite probar y depurar el código sin ningún problema.

3. ¿Qué es la arquitectura de Android?

La arquitectura de Android se compone de 4 componentes clave:

  • Kernel de Linux.
  • Bibliotecas.
  • El Framework de Android.
  • Las Aplicaciones de Android.

4. ¿Qué es el framework de Android?

El framework de Android es un aspecto importante de la Arquitectura de Android. Desde la API oficial de Android puedes tener acceso a todas las clases y métodos que los desarrolladores necesitan para escribir aplicaciones en el entorno Android.

5. ¿Qué es AAPT?

AAPT es la abreviatura de Android Asset Packaging Tool. Esta herramienta que brinda a los desarrolladores la capacidad de manejar archivos compatibles con formatos .JAR .APK y .ZIP. Lo que incluye crear, extraer y ver el contenido de este tipos de archivos.

6. ¿Cuál es la importancia de tener un emulador en el entorno de Android?

El emulador permite a los desarrolladores «jugar» alrededor de una interfaz que actúa como si fuera un dispositivo móvil real. Pueden escribir y probar códigos, e incluso depurar. Los emuladores son un lugar seguro para probar códigos, especialmente si se encuentra en la fase inicial de diseño.

7. ¿De qué sirve ActivityCreator?

ActivityCreator es el primer paso hacia la creación de un nuevo proyecto de Android. Está compuesto por un script de shell que se utilizará para crear la nueva estructura del sistema de archivos necesaria para escribir códigos dentro del IDE de Android.

8. ¿Qué son las Activities?

Las Activities son lo que se llama en la ventana dentro de la interfaz de usuario. Del mismo modo que crea ventanas para mostrar resultados o para solicitar una entrada en forma de cuadros de diálogo, las actividades juegan el mismo papel, aunque no siempre pueden formar parte de la interfaz de usuario.

9. ¿Qué son las Intents?

Intents muestra los mensajes de notificación al usuario desde el dispositivo habilitado para Android. Se puede usar para alertar al usuario de los estados que ocurren. Se puede hacer participe al usuario, haciendo que estos respondan a los «intents».

10. ¿Cómo puedo diferenciar entre «actividades»/Activities de «servicios»/Services?

Las actividades se pueden cerrar o finalizar en cualquier momento que el usuario lo desee. Por otro lado, los servicios están diseñados para ejecutarse detrás de escena y pueden actuar de forma independiente. La mayoría de los servicios se ejecutan continuamente, independientemente de si se ejecutan ciertas actividades o no.

11. ¿Qué elementos son importantes en cada proyecto de Android?

Estos son los elementos esenciales que están presentes cada vez que se crea un proyecto de Android:

  • AndroidManifest.xml
  • build.xml
  • bin/
  • src/
  • res/
  • assets/

12. ¿Cuál es la importancia de los diseños basados en XML?

El uso de los diseños basados en XML proporciona un medio consistente y estándar para establecer un formato de definición de la GUI. En la práctica común, los detalles del diseño se colocan en archivos XML, mientras que otros elementos se colocan en archivos fuente.

13. ¿Qué son los contenedores?

Los contenedores, como su propio nombre lo indica, mantienen unidos los objetos y los widgets, dependiendo de qué elementos específicos se necesitan y en qué disposición particular se desea. Los contenedores pueden contener etiquetas, campos, botones o incluso contenedores secundarios, como ejemplos.

14. ¿Qué es la orientación?

La orientación, que se puede establecer usando setOrientation (), dicta si LinearLayout se representa como una fila o una columna. Los valores se establecen como HORIZONTALES o VERTICALES.

15. ¿Cuál es la importancia de Android en el mercado móvil?

Los desarrolladores pueden escribir y registrar aplicaciones que se ejecuten específicamente en el entorno de Android.

Esto significa que todos los dispositivos móviles que tengan Android habilitado podrán admitir y ejecutar estas aplicaciones.

Con la creciente popularidad de los dispositivos móviles Android, los desarrolladores pueden aprovechar esta tendencia creando y cargando sus aplicaciones en el Android Market para distribuirlas a cualquiera que quiera descargarlas.

16. ¿Cuáles son las desventajas de Android?

Dado que Android es una plataforma de código abierto y el hecho de que se han lanzado diferentes sistemas operativos Android en diferentes dispositivos móviles, no existe una política clara sobre cómo las aplicaciones pueden adaptarse con varias versiones y actualizaciones del sistema operativo.

Una aplicación que se ejecuta en esta versión particular del sistema operativo Android puede o no ejecutarse en otra versión.

Otra desventaja es que, dado que los dispositivos móviles, como teléfonos y pestañas, tienen diferentes tamaños y formas, representa un desafío para los desarrolladores crear aplicaciones que puedan ajustarse correctamente al tamaño de pantalla correcto y otras características y especificaciones variables.

17. ¿Qué es adb?

Adb es la abreviatura de Android Debug Bridge, que permite a los desarrolladores el poder de ejecutar comandos de shell remotos.

Su función básica es permitir y controlar la comunicación hacia y desde el puerto del emulador.

18. ¿Cuáles son los cuatro estados esenciales de una actividad?

  • Activo: si la actividad está en primer plano.
  • En pausa: si la actividad está en segundo plano y sigue visible.
  • Detenido: si la actividad no es visible y, por lo tanto, está oculta u oculta por otra actividad.
  • Destruido: cuando el proceso de actividad se termina o finaliza.

19. ¿Qué es ANR?

ANR es la abreviatura de Aplicación que No Responde. En realidad, este es un cuadro de diálogo que aparece al usuario cuando una aplicación no responde durante un largo período de tiempo.

20. ¿Qué elementos pueden aparecer solo una vez y deben estar presentes?

Entre los diferentes elementos, los elementos y deben estar presentes y pueden ocurrir solo una vez. El resto son opcionales y pueden ocurrir tantas veces como sea necesario.

21. ¿Cómo se usan los caracteres de escape como atributo?

Los caracteres de escape están precedidos por barras diagonales inversas dobles. Por ejemplo, se crea un carácter de nueva línea usando ‘\ n’

22. ¿Cuál es la importancia de los permisos de configuración en el desarrollo de aplicaciones?

Los permisos permiten que se impongan ciertas restricciones principalmente para proteger los datos y el código. Sin estos, los códigos podrían verse comprometidos, lo que daría lugar a defectos en la funcionalidad.

23. ¿Cuál es la función de un filtro de intención?

Debido a que cada componente necesita indicar a qué intenciones pueden responder, los filtros de intención se utilizan para filtrar las intenciones que estos componentes están dispuestos a recibir. Son posibles uno o más filtros de intención, dependiendo de los servicios y actividades que se vayan a utilizar.

24. ¿Enumera los tres bucles clave al monitorear una actividad?

  • Vida útil completa: la actividad ocurre entre onCreate y onDestroy.
  • Vida útil visible: la actividad ocurre entre onStart y onStop.
  • Vida útil en primer plano: la actividad ocurre entre onResume y onPause.

25. ¿Cuándo se invoca el método onStop ()?

Una llamada al método onStop ocurre cuando una actividad ya no es visible para el usuario, ya sea porque otra actividad se ha hecho cargo o si está frente a esa actividad.

26. ¿Hay algún caso en el que otros calificadores en múltiples recursos tengan prioridad sobre el entorno local?

Sí, en realidad hay casos en los que algunos calificadores pueden tener prioridad sobre la configuración regional. Hay dos excepciones conocidas, que son los calificadores MCC (código de país móvil) y MNC (código de red móvil).

27. ¿Cuáles son los diferentes estados en los que se basa un proceso?

Hay 4 estados posibles:

  • Actividad en primer plano.
  • Actividad visible.
  • Actividad de fondo.
  • Proceso vacío.

28. ¿Cómo se puede prevenir el ANR?

Una técnica que evita que el sistema Android concluya un código que ha respondido durante un largo período de tiempo es crear un hilo secundario.

Dentro del subproceso secundario, se puede colocar la mayoría del funcionamiento real de los códigos, de modo que el subproceso principal se ejecute con períodos mínimos de tiempos sin respuesta.

29. ¿Qué papel juega Dalvik en el desarrollo de Android?

Dalvik sirve como una máquina virtual, y es donde se ejecuta cada aplicación de Android. A través de Dalvik, un dispositivo puede ejecutar múltiples máquinas virtuales de manera eficiente a través de una mejor administración de memoria.

30. ¿Qué es AndroidManifest.xml?

Este archivo es esencial en todas las aplicaciones. Se declara en el directorio raíz y contiene información sobre la aplicación que el sistema Android debe conocer antes de que se puedan ejecutar los códigos.

31. ¿Cuál es la forma correcta de configurar un dispositivo con Android para el desarrollo de aplicaciones?

Los siguientes son los pasos a seguir antes del desarrollo real de la aplicación en un dispositivo con Android:

  • Declare su aplicación como «depurable» en su Manifiesto de Android.
  • Active «Depuración de USB» en su dispositivo.
  • Configura tu sistema para detectar tu dispositivo.

32. ¿Qué pasos debo seguir para crear un servicio acotado a través de AIDL?

  1. Cree el archivo .aidl, que define la interfaz de programación
  2. Implemente la interfaz, que implica extender la clase Stub abstracta interna así como implantar sus métodos.
  3. Exponga la interfaz, que implica implementar el servicio a los clientes.

33. ¿Cuál es la importancia de los recursos predeterminados?

Cuando los recursos predeterminados, que contienen cadenas y archivos predeterminados, no están presentes, se producirá un error y la aplicación no se ejecutará. Los recursos se colocan en subdirectorios especialmente nombrados bajo el directorio res / project.

34. Cuándo se trata de múltiples recursos, ¿Cuál tiene prioridad?

Suponiendo que todos estos recursos múltiples son capaces de coincidir con la configuración de un dispositivo, el calificador de «localización» casi siempre tiene la mayor prioridad sobre los demás.

35. ¿Cuándo ocurre el ANR?

El cuadro de diálogo ANR se muestra al usuario en función de dos condiciones posibles. Uno es cuando no hay respuesta a un evento de entrada dentro de los 5 segundos, y el otro es cuando un receptor de difusión no se ejecuta en 10 segundos.

36. ¿Qué es AIDL?

AIDL o lenguaje de definición de interfaz de Android, maneja los requisitos de interfaz entre un cliente y un servicio para que ambos puedan comunicarse al mismo nivel a través de la comunicación entre procesos o IPC. Este proceso implica descomponer los objetos en primitivos que Android puede entender. Esta parte es necesaria simplemente porque un proceso no puede acceder a la memoria del otro proceso.

37. ¿Qué tipos de datos son compatibles con AIDL?

AIDL tiene soporte para los siguientes tipos de datos:

  • String.
  • CharSequence.
  • List.
  • Map.
  • Todos los tipos de datos nativos de Java como int, long, char y Boolean.

38. ¿Qué es un fragmento?

Un fragmento es una parte o porción de una actividad. Es modular en el sentido de que puede moverse o combinarse con otros fragmentos en una sola actividad. Los fragmentos también son reutilizables.

39. ¿Qué es una actividad visible?

Una actividad visible es aquella que se encuentra detrás de un diálogo de primer plano. En realidad, es visible para el usuario, pero no necesariamente está en primer plano.

40. ¿Cuándo es el mejor momento para matar una actividad en primer plano?

La actividad en primer plano, siendo la más importante entre los otros estados, solo se elimina o finaliza como último recurso, especialmente si ya está consumiendo demasiada memoria. Cuando un estado de paginación de memoria ha sido alcanzado por una actividad en primer plano, entonces se desactiva para que la interfaz de usuario pueda retener su capacidad de respuesta al usuario.

41. ¿Es posible usar o agregar un fragmento sin usar una interfaz de usuario?

Sí, es posible hacerlo, como cuando desea crear un comportamiento en segundo plano para una actividad en particular. Puede hacerlo utilizando el método add (Fragment, String) para agregar un fragmento de la actividad.

42. ¿Cómo se eliminan los iconos y widgets de la pantalla principal del dispositivo Android?

Para eliminar un ícono o acceso directo, mantenga presionado ese ícono. Luego, arrástrela hacia abajo a la parte inferior de la pantalla donde aparece un botón de eliminación.

43. ¿Cuáles son los componentes principales de la arquitectura de la aplicación de Android?

Hay 5 componentes clave en la arquitectura de la aplicación de Android:

  • Servicios.
  • Intención.
  • Externalización de recursos.
  • Notificaciones.
  • Proveedores de contenido.

44. ¿Qué compone un proyecto típico de aplicación de Android?

Un proyecto en desarrollo de Android, una vez compilado, se convierte en un archivo .apk. Este formato de archivo apk está compuesto por el archivo AndroidManifest.xml, el código de la aplicación, los archivos de recursos y otros archivos relacionados.

45. ¿Qué es una intención adhesiva?

Una intención fija es una transmisión del método sendStickyBroadcast () de tal manera que la intención flota incluso después de la transmisión, permitiendo que otros recopilen datos de ella.

46. ¿Todos los teléfonos móviles son compatibles con el último sistema operativo Android?

Algunos teléfonos con Android le permiten actualizar a la versión superior del sistema operativo Android. Sin embargo, no todas las actualizaciones le permitirán obtener la última versión. Depende en gran medida de la capacidad y las especificaciones del teléfono, si puede admitir las funciones más nuevas disponibles en la última versión de Android.

47. ¿Qué es el punto de acceso Wi-Fi portátil?

El punto de acceso Wi-Fi portátil le permite compartir su conexión de Internet móvil a otro dispositivo inalámbrico. Por ejemplo, usando su teléfono con Android como un punto de acceso Wi-Fi, puede usar su computadora portátil para conectarse a Internet usando ese punto de acceso.

48. ¿Qué es una acción?

En el desarrollo de Android, una acción es lo que el remitente intencional quiere hacer o espera obtener como respuesta. La mayor parte de la funcionalidad de la aplicación se basa en la acción prevista.

49. ¿Cuál es la diferencia entre un mapa de bits normal y una imagen de nueve parches?

En general, una imagen de nueve parches permite cambiar el tamaño que se puede utilizar como fondo u otros requisitos de tamaño de imagen para el dispositivo de destino. El parche de nueve se refiere a la forma en que puede cambiar el tamaño de la imagen: 4 esquinas sin escala, 4 bordes que se escalan en 1 eje y el medio que se puede escalar en ambos ejes.

50. ¿Qué lenguaje de programación es compatible con Android para el desarrollo de aplicaciones?

El lenguaje principal admitido es el lenguaje de programación Java. Aunque en la actualidad, se comienza a incluir, Dart junto a Kotlin.

Java es el lenguaje más popular para el desarrollo de aplicaciones, lo que lo hace ideal incluso para los nuevos desarrolladores de Android para aprender rápidamente a crear e implementar aplicaciones en el entorno de Android.

Fuente

Lunes, 12 Abril 2021 19:53

Duplicando una tabla en Mysql

Hay ocasiones en las que necesitamos hacer pruebas sobre una tabla que se encuentra en producción.

Una forma rápida de hacer esa prueba sin afectar los datos, es hacer una copia de la tabla.

En realidad, si tenemos tiempo siempre será más cómodo llevar esos datos a un entorno de staging para trabajar más tranquilos; vamos a pensar que no tenemos tiempo… y mucho menos un entorno de staging.

Si queremos duplicar nuestra tabla, sólo debemos ejecutar la siguiente instrucción:

CREATE TABLE tabla_nueva LIKE tabla_original;

De ésta forma. obtenemos una tabla idéntica en cuanto a estructura.

Si necesitamos los datos de esa tabla en nuestra copia, insertamos todos los registros de la original de la siguiente forma:

INSERT INTO tabla_nueva SELECT * FROM tabla_original;

Al haber una correspondencia exacta en cuanto a las columnas y tipos de datos, los registros son insertados sin mayor problema.

Hay una segunda forma de obtener el mismo resultado que las dos consultas previas. Podemos, con una sola instrucción, lograr la misma tabla. En este caso, debemos ejecutar:

CREATE TABLE tabla_nueva SELECT * FROM tabla_original;

Con esto, dos formas muy rápidas de duplicar una tabla y, si se quiere, sus datos.

Domingo, 14 Febrero 2021 15:48

Cómo saber el tamaño de un directorio

Cómo saber el tamaño de un directorio

 
En este post, veremos distintas forma de saber el tamaño de un directorio o carpeta en Linux.
 

1) Comando ls: Saber el tamaño de un directorio

 
Al utilizar el comando ls, de forma predeterminada, nos indica el tamaño de una carpeta:
 

Ejemplo:
 
[root@LINUX1 SUBDIR]# ls -lFh
total 121M
-rw-r--r-- 1 root root 24M Aug 25 22:15 SYSADMIT.file01
-rw-r--r-- 1 root root 24M Aug 25 22:16 SYSADMIT.file02
-rw-r--r-- 1 root root 24M Aug 25 22:16 SYSADMIT.file03
-rw-r--r-- 1 root root 24M Aug 25 22:16 SYSADMIT.file04
-rw-r--r-- 1 root root 24M Aug 25 22:16 SYSADMIT.file05

 
Si nos fijamos, en el color verde, veremos el total.
 
Los parámetros utilizados, son los siguientes:
 
-l: Formato largo.
-F: Clasificación.
-h: Formato humano (Muestra MB, GB, etc...)
 
El problema de esta opción, es que para saber cuanto ocupa cada directorio, deberemos entrar uno por uno, listar y obtener el total.
 

2) Comando du: Saber el tamaño de un directorio

 
El comando para saber el tamaño de un directorio o bien una estructura de directorios es el comando: du (disk usage).
 
Veamos algunos ejemplos de su funcionamiento:
 
A) Ejecutamos: du -h
 
[root@LINUX1 SYSADMIT]# du -h
121M    ./SUBDIR3
73M     ./SUBDIR2
49M     ./SUBDIR1/SUB1
169M    ./SUBDIR1
361M    .

 
Nos muestra la suma desde el directorio actual y todos sus subdirectorios, en este caso: 361MB
 
También nos aparece lo que ocupa cada directorio.
 
Con el parámetro -h, conseguimos que los resultados aparezcan en MB, GB, etc..
 
B) Ejecutamos: du -sh
 
[root@LINUX1 SYSADMIT]# du -sh
361M    .
 
En este ejemplo, utilizando el parámetro -s, conseguimos que solo nos muestre el total, contando desde el directorio actual y todos los subdirectorios.
 
C) Ejecutamos: du -ha
 
[root@LINUX1 SYSADMIT]# du -ha
25M     ./SUBDIR3/SYSADMIT.file05
25M     ./SUBDIR3/SYSADMIT.file04
25M     ./SUBDIR3/SYSADMIT.file01
25M     ./SUBDIR3/SYSADMIT.file03
25M     ./SUBDIR3/SYSADMIT.file02
121M    ./SUBDIR3
25M     ./SUBDIR2/SYSADMIT.file01
25M     ./SUBDIR2/SYSADMIT.file03
25M     ./SUBDIR2/SYSADMIT.file02
73M     ./SUBDIR2
25M     ./SUBDIR1/SYSADMIT.file05
25M     ./SUBDIR1/SYSADMIT.file04
25M     ./SUBDIR1/SUB1/SYSADMIT.file01
25M     ./SUBDIR1/SUB1/SYSADMIT.file02
49M     ./SUBDIR1/SUB1
25M     ./SUBDIR1/SYSADMIT.file01
25M     ./SUBDIR1/SYSADMIT.file03
25M     ./SUBDIR1/SYSADMIT.file02
169M    ./SUBDIR1
361M    .

 
Con el parámetro -a, conseguimos el detalle de tamaño de cada fichero, además de los totales.
 
En verde, el tamaño total.
En naranja, el tamaño de los directorios y subdirectorios.
El resto, el tamaño de cada fichero.
 
D) Ejecutamos: du -h --max-depth=1
 
[root@LINUX1 SYSADMIT]# du -h --max-depth=1
121M    ./SUBDIR3
73M     ./SUBDIR2
169M    ./SUBDIR1
361M    .

[root@LINUX1 SYSADMIT]# du -h
121M    ./SUBDIR3
73M     ./SUBDIR2
49M     ./SUBDIR1/SUB1
169M    ./SUBDIR1
361M    .
 
 

Con el parámetro, --max-depth, podemos indicar el nivel de profundidad de directorios que queremos que nos muestre.
 
Si indicamos --max-depth, a 1, solo nos mostrará un nivel de directorios partiendo del directorio actual.
 
De todas formas, la suma del total de ficheros ubicados en los subdirectorios, se cuenta de igual forma.
 
Si nos fijamos en el ejemplo:
 

En verde, el tamaño total: El valor del tamaño total es el mismo indicando el parámetro --max-depth, a 1 o no.
 
En naranja, se muestra uno de los subdirectorios situado en un segundo nivel, pero en cambio, indicando el parámetro  --max-depth, a 1, ya no aparece.
 
E) Ejecutamos:  du -h| sort -h // du -h| sort -h -r
 
[root@LINUX1 SYSADMIT]# du -h| sort -h
49M     ./SUBDIR1/SUB1
73M     ./SUBDIR2
121M    ./SUBDIR3
169M    ./SUBDIR1
361M    .
 
[root@LINUX1 SYSADMIT]# du -h| sort -h -r
361M    .
169M    ./SUBDIR1
121M    ./SUBDIR3
73M     ./SUBDIR2
49M     ./SUBDIR1/SUB1
 
 
El comando sort, dispone de un parámetro para ordenar el formato de salida du -h (MB, GB, etc) que es utilizando también el parámetro -h.
 
Por defecto, sort -h, ordena de menor a mayor, si queremos que ordene de mayor a menor, deberemos ejecutar: sort -h -r.
Domingo, 14 Febrero 2021 15:44

Usando el comando Find en Linux

Usando el comando Find en Linux

Comencemos explicando el comando find en Linux y cómo usarlo.

La sintaxis básica

El comando más común utilizado para encontrar y filtrar archivos en Linux es a través del comando find. El diseño básico de este comando es el siguiente:

find <startingdirectory> <options> <search term>

Comienza con la palabra clave find, que alerta a Linux de que lo que sigue se refiere a la búsqueda de un archivo. El argumento <startingdirectory> es el punto de origen de donde deseas iniciar la búsqueda. Puede ser reemplazado con varios argumento, incluyendo:

  • / (slash) – busca en todo el sistema.
  • . (punto) – busca en la carpeta en la que estás trabajando actualmente (directorio actual).
  • ~ (tilde) – para buscar desde tu directorio home.

Para averiguar tu directorio actual, usa el comando pwd.

El segundo argumento <options> se usa para tu archivo. Este podría ser el nombre, tipo, fecha de creación del archivo, etc. El tercer argumento <searchterm> es donde se especificará el término de búsqueda relevante.

Formas de utilizar el comando find en Linux

Echemos un vistazo a las diversas opciones que Linux proporciona a los usuarios:

Búsqueda por nombre

Por supuesto, el método más común y obvio para buscar un archivo es usar su nombre. Para ejecutar una consulta de búsqueda simple usando el nombre del archivo, usa el comando find de la siguiente manera:

find . -name my-file

Usamos la opción -name y buscamos un archivo llamado my-file. Ten presente que comenzamos la búsqueda en nuestro directorio actual usando el argumento . (punto).

Recuerda que el argumento -name busca términos distinguiendo entre mayúsculas y minúsculas en Linux. Si conoces el nombre del archivo, pero no estás seguro de su las mayúsculas y minúsculas, usa el comando find de esta manera:

find . -iname my-file

También puedes buscar todos los archivos sin una palabra clave en el nombre. Puedes hacer esto de dos maneras. El primer método implica el uso de la palabra clave -not de la siguiente manera:

find . -not -name my-file

En el segundo, podemos usar el signo de exclamación (!), aunque debe estar precedido por el identificador de escape (\) para que Linux sepa que este es parte del comando find.

find . \! -name my-file

También puedes buscar varios archivos con un formato común como .txt:

find . -name “*.txt”

Esto listará todos los archivos de texto comenzando con la carpeta actual.

Finalmente, si deseas buscar un determinado archivo por nombre y eliminarlo, usa el argumento -delete después del nombre del archivo:

find . -name my-file -delete

Búsqueda por tipo

Linux permite a los usuarios listar toda la información basada en sus tipos. Hay varios filtros que puedes usar:

  • d – directorio o carpeta
  • f – archivo normal
  • l – enlace simbólico
  • c – dispositivos de caracteres
  • b – dispositivos de bloque

Un ejemplo simple del uso del tipo de archivo para la búsqueda se puede ver a continuación:

find / -type d

Esto mostrará una lista de todos los directorios presentes en tu sistema de archivos, al haber comenzado la búsqueda desde nuestro directorio raíz con el símbolo de barra inclinada /.

También puedes concatenar las opciones -type y -name para hacer tus búsquedas aún más específicas:

find / -type f -name my-file

Esto buscará archivos llamados my-file, excluyendo directorios o enlaces.

Búsqueda por fecha

Si quieres buscar archivos en función de su fecha de acceso y las registros de fecha de modificación, Linux te ofrece las herramientas para hacerlo. Hay 3 registros de tiempo de los cuales Linux realiza seguimiento en los archivos:

  • Tiempo de acceso (-atime) – Fecha más reciente en que el archivo fue leído o escrito.
  • Tiempo de modificación (-mtime) – Fecha más reciente en que se modificó el archivo.
  • Hora de cambio (-ctime) – Fecha más reciente en que se actualizaron los metadatos del archivo.

Esta opción debe usarse con un número que especifica cuántos días pasaron desde que se accedió, modificó o cambió el archivo:

find / -atime 1

Este comando mostrara todos los archivos a los que se accedió hace un día desde el momento actual.

Podemos hacer que nuestras consultas sean más precisas agregando los signos más (+) y menos (-) precediendo al número de días. Por ejemplo:

find / -mtime +2

Esto listará todos los archivos que tienen un tiempo de modificación de más de dos días.

Para buscar todos los archivos cuyos metadatos se actualizaron hace menos de un día, ejecuta lo siguiente:

find / -ctime -1

Aunque no se usan seguido, hay algunos argumentos adicionales que también están relacionados con las búsquedas por fecha. El argumento -mmin busca archivos modificados en base a minutos. Se puede usar así:

find / -mmin -1

Además, el argumento -newer se puede usar para comparar la antigüedad de dos archivos y encontrar el más reciente.

find / -newer my-file

Obtendrás todos los archivos que han sido modificados hace menos tiempo que tu archivo.

Búsqueda por tamaño

Linux te brinda la opción de buscar archivos según sus tamaños. La sintaxis básica para buscar archivos por tamaño es:

find <startingdirectory> -size <size-magnitude> <size-unit>

Puedes especificar las siguientes unidades de tamaño:

  • c – bytes
  • k – kilobytes
  • M – megabytes
  • – gigabytes
  • b – trozos de 512 bytes

Un ejemplo simple de cómo usar el comando find de Linux para los tamaños de archivo es el siguiente:

find / -size 10M

Esto buscará en tu sistema archivos que tengan exactamente 10 megabytes de tamaño. Al igual que cuando buscaste en función del tiempo, puedes filtrar aún más tus búsquedas con los signos más y menos:

find / -size +5G

El comando anterior listará todos los archivos de tu disco que tengan más de 5 Gigabytes de tamaño.

Búsqueda por propiedad

Linux te da la capacidad de especificar tus búsquedas según la propiedad del archivo. Para buscar archivos de un determinado propietario, se debe ejecutar el siguiente comando:

find / -user john

Esto devolverá una lista de todos los archivos que posee el usuario llamado john. Similar a los nombres de usuario, también podemos buscar archivos a través de nombres de grupo:

find / -group classroom

Búsqueda por permisos

Los usuarios pueden buscar archivos basados ​​en los permisos de los archivos con la opción -perm. Por ejemplo:

find / -perm 644

En Linux, 644 corresponde a permisos de lectura y escritura. Lo que significa que este comando buscará todos los archivos que solo tienen permisos de lectura y escritura. Puedes jugar con esta opción un poco más, así:

find / -perm -644

Al agregar un guión, se mostrarán todos los archivos que tengan al menos el permiso 644.

Otras opciones útiles

Además de todos estos métodos de búsqueda de archivos, hay otras opciones útiles que deberías recordar.

Por ejemplo, para buscar archivos y carpetas vacíos en tu sistema, usa lo siguiente:

find / -empty

Del mismo modo, para buscar todos los ejecutables guardados en tu disco, utiliza la opción -exec:

find / -exec

Para buscar archivos legibles, puedes ejecutar el siguiente comando:

find / -read

Como puedes ver, hay un montón de opciones disponibles para que los usuarios puedan adaptar sus consultas perfectamente de acuerdo a sus necesidades. Veamos ahora el otro comando que se puede usar para buscar archivos en Linux.

Una pregunta que tienen muchos webmasters y propietarios de pequeñas empresas que administran sus propias páginas web es cómo eliminar una ficha de Google My Business.

Esta es una pregunta bastante común en los foros, pero su respuesta puede complicarse más de lo que parece a priori.

Pasos para borrar una ficha de Google My Business

Si lo que quieres hacer es directamente eliminar la ficha, los pasos son bastante sencillos. Sobre todo si has estado gestionando tu ficha de empresa en GMB hasta ahora:

  1. Desde el ordenador (no se puede eliminar una ficha de GMB desde la aplicación para móvil), inicia sesión en tu cuenta de Google My Business.
  2. En el menú de la izquierda, entra en la sección de Información.

  3. Pulsa en el botón de Eliminar ficha (solo verás ese botón si una empresa tiene varias ubicaciones). Si solo tiene esa ubicación, pulsa en Marcar como cerrada permanentemente).

  4. Pulsa en Quitar o Cerrar Empresa.

Cómo cerrar varias fichas a la vez en MyBusiness

En el caso que quieras cerrar más de una ficha de una misma empresa, todo lo que tienes que hacer es:

  1. Entra en la sección Gestionar Ubicaciones.
  2. Selecciona todas las fichas que quieras eliminar.
  3. Pulsa en Acciones y selecciona Eliminar ubicaciones Eliminar en la ventana emergente de confirmación.

NOTA IMPORTANTE: Que hayas eliminado una o varias fichas de Google My Business no significa que desaparezcan en Google Maps o en Búsquedas web. Con suerte, es posible que en algún momento deje de mostrarse.

Qué pasa si borras tu ficha de Google My Business 

Tanto si has decidido borrar una como varias fichas de tu cuenta, debes saber que:

  • Has eliminado todas las fotosvídeos publicaciones que hayas compartido como propietario.
  • Has eliminado todas las respuestas a las reseñas. Ojo, no las reseñas en sí.
  • Puedes encontrar errores tanto en las extensiones de ubicación de Google Ads como en las páginas web creadas a través de GMB.
  • Además, el resto de administradores no podrán acceder más a la ficha.

Ejemplo de script PHP para escribir en un fichero

<?php
$myfile = fopen("nuevo-fichero.txt""w"or die("No se puede abrir el fichero!");
$txt = "John Doe\n";
fwrite($myfile, $txt);
$txt = "Jane Doe\n";
fwrite($myfile, $txt);
fclose($myfile);
?>

Para hacerlo es simple, con este comando:

cat fichero.txt | sort | uniq > fichero-sin-repeticiones.txt

Lunes, 11 Enero 2021 15:04

Ejemplos de uso de awk o gawk

awk o la versión GNU gawk es más que un simple comando de procesamiento de patrones, es todo un lenguaje de análisis semántico. Su dominio es como aprender todo un lenguaje de programación, pero en esta ocasión veremos unos ejemplos de su potencia en unos casos sencillos de análisis de patrones de cadenas.

Ejemplo 1: Una lista personalizada de usuarios para HTML

Una línea típica de /etc/passwd es como la siguiente:

luis:x:504:504:Luis Hernandez:/home/luis:/bin/bash

Bien, supongamos que deseamos un listado de todos los usuarios normales (personas) del sistema, pero solo necesitamos su nombre de usuario, su nombre o real y su shell por defecto, es decir, si vemos la línea anterior, la separación entre campos es ":" asi que para nuestro reporte queremos el campo 1,5 y 7. Pero además, este reporte será parte de una tabla HTML, asi que sería bueno si puderian incluirse de una vez las etquietas "<tr> y "<td> necesarias de una vez. Es decir, el resultado deseado es el siguiente:

<tr><td>luis<td><td>Luis Hernandez</td><td>/bin/bash</td></tr>

El primer paso es determinar los usuarios normales del sistema, podríamos usar un grep "home" /etc/passw | gawk ..., pero podría haber usuarios que tengan su HOME en otra ubicación, además se trata de usar solo awk, asi que lo primero que entenderemos es que los campos obtenidos del resultado de un comando awk, se numeran por $1, $2, etc. y el delimitador de campos se indica mediante la variable "FS".

#> gawk '{print $3}' FS=":" /etc/passwd

0

1

2

...

81

86

500

501

502

503

504

Aunque no muy útil todavía, podemos ver como seleccionamos el caracter separador FS=":", que viene de 'Field Separator', y tenemos indicada una acción '{print $3}', que significa imprime el campo 3. Aunque realmente no lo queremos imprimir, lo queremos evaluar, y si deseamos imprimir el $1, $5 y $7 que se mencionarion previamente, asi que agregamos una expresión de evaluación antes de la acción:

 

#> awk '$3 >= 500 {print $1 $5 $7 }' FS=":" /etc/passwd

sergonSergio Gonzalez/bin/bash

valeriaValeria Perez/bin/bash

fernandaFernanda Lozano/bin/sh

alejandraAlejandra Lopez/bin/nologin

luisLuis Hernandez/bin/bash

Mucho mejor, agregamos '$3 >= 500' previo a la acción (que es imprimir lo que deseamos), ya que como se sabe en la mayoría de distros modernas, los usuarios normales del sistema se numeran del 500 en adelante (más sobre administración de usuarios). Nótese que los campos en el resultado salen pegados, es necesario agregar entre comillas " ", ya sea un espacio o lo que se desee, en este caso etiquetas de tablas de HTML y además ordenaremos "sort" los registros obtenidos:

 

#> awk  '$3 >= 500 {print "<tr><td>"$1"</td><td>"$5"</td><td>"$7"</td></tr>" | "sort" }' FS=":" /etc/passwd

<tr><td>alejandra</td><td>Alejandra Lopez</td><td>/bin/nologin</td></tr>

<tr><td>fernanda</td><td>Fernanda Lozano</td><td>/bin/sh</td></tr>

<tr><td>luis</td><td>Luis Hernandez</td><td>/bin/bash</td></tr>

<tr><td>sergon</td><td>Sergio Gonzalez</td><td>/bin/bash</td></tr>

<tr><td>valeria</td><td>Valeria Perez</td><td>/bin/bash</td></tr>

Martes, 01 Diciembre 2020 15:06

Script en PHP para detectar Proxys

   $proxy_headers = array(
           'HTTP_VIA',
           'HTTP_X_FORWARDED_FOR',
           'HTTP_FORWARDED_FOR',
           'HTTP_X_FORWARDED',
           'HTTP_FORWARDED',
           'HTTP_CLIENT_IP',
           'HTTP_FORWARDED_FOR_IP',
           'VIA',
           'X_FORWARDED_FOR',
           'FORWARDED_FOR',
           'X_FORWARDED',
           'FORWARDED',
           'CLIENT_IP',
           'FORWARDED_FOR_IP',
           'HTTP_PROXY_CONNECTION'
       );
       foreach($proxy_headers as $x){
           if (isset($_SERVER[$x])) die("Estás usando proxy!");
       }
Página 1 de 8