Generate random string for various use case

2016-08-08 1 min read Bash

Some times I need random string, for example to use as email seperator or to use in some API. One way is to use tools like /dev/[u]random or od and other such. But they seem cubersome after I figured this out.

openssl rand <length>
openssl rand 10

This alone without some parameters is not interesting thoug. You can use ‘-base64’ or ‘-hex’ to select the encoding.

So if you execute the above you will get something like this

Continue reading

supernova – manage multiple openstack environment

2016-08-01 1 min read Vurtualization

supernova is an easy to use tool that helps manage multiple openstack environments.

Details –

Name        : supernova
Arch        : noarch
Epoch       : 0
Version     : 2.2.0
Release     : 2.fc24
Size        : 62 k
Repo        : @System
From repo   : fedora
Summary     : Use novaclient with multiple OpenStack nova environments the easy way
URL         : https://github.com/major/supernova
License     : ASL 2.0
Description : supernova manages multiple nova environments without sourcing
novarc files or mucking with environment variables.

To get started, start with installing supernova with

Continue reading

Install virtual machines in one line

2016-07-25 1 min read Vurtualization

To install a VM from command line, you can use the following command. Change the required parameters as need but you need to change at-least CDROM iso image and disk-path.

virt-install \
    -n myVM \
    --description "Test VM" \
    --os-type=Linux \
        --os-variant=centos7 \
        --ram=2048 \
        --vcpus=2 \
        --disk path=./myVM.img,bus=virtio,size=10 \
        --graphics none \
        --cdrom  <Image installtion CDROM>.iso \
        --net user

sysreporter on Fedora – basic system report in email

2016-07-18 1 min read Fedora

From the packages github page:

 

{#user-content-sysreporter.anchor}SysReporter

SysReporter (System Reporter) is a bash script that runs and aggregates a set of reports about its host system. The report can then be emailed to the system administrator on a daily, hourly, minutely basis.

and from dnf info

Name        : sysreporter
Arch        : noarch
Epoch       : 0
Version     : 3.0.4
Release     : 1.fc24
Size        : 17 k
Repo        : @System
From repo   : updates
Summary     : Basic system reporter with emailing
URL         : https://github.com/onesimus-systems/sysreporter
License     : MIT
Description : Basic system reporter with emailing

Continue reading

Python script to manage virtual machines with python API for libvirt.

2016-07-04 4 min read Vurtualization

Most of times I use virt-manager to manage VMs but sometimes, I have to manage VMs on other hosts over ssh when connected over VPN or while I am working remotely. GUI like virt-manager thus becomes slow, and hence I like to use cli commands and nothing is better than virsh. But here is simple script that I use sometimes to manage the VMs with CLI based menu. Hope you find it useful.

Continue reading

web services in c with cgi

2016-06-13 2 min read C Programs

I was trying to setup a simply webservice to reply to POST requests. Earlier this was being done in tomcat which seem a little overkill to me since I already had a webserver up and running. So, a quick c program to respond to request is all that I needed. And here is the result.

/*
 * =====================================================================================
 *
 *       Filename:  Login.cpp
 *
 *    Description:
 *
 *        Version:  1.0

 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  Amit Agarwal (),
 *   Organization:
*
* == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == == =
    */
#include <stdio .h>
#include <stdlib .h>
#include <string .h>


#define MAXLEN 1024

#ifdef DBG
#define DEBUG(a,b) fprintf(stderr, a, b);
#else
#define DEBUG(a,b) 
#endif

#define HEAD "n"
#define TAIL ""

int main(void)
{

    char input[MAXLEN];
    char * data;
    char*lenstr;
    long len;


    printf("%s%c%cnn",
           "Content-Type:text/xml;charset=iso-8859-1", 13, 10);

    // len = getenv("QUERY_STRING"); // This is for GET
    lenstr = getenv("CONTENT_LENGTH");
    DEBUG( "Length string is %sn", lenstr);

    if(lenstr == NULL || sscanf(lenstr,"%ld",&len)!=1 || len > MAXLEN)
        printf("Error in invocation - wrong FORM probably.");
DEBUG( "Length is %ldn", len);
{
int count=0;
while ( count < len )
input[count++] = getchar();
input[count]='?';
DEBUG ( "Read characters = %dn", count)
}

//fprintf(stderr, "VAlue is %sn", input);
///unencode(input + 5 , input + len, data);

data = input;
DEBUG("Data value is %sn", data);

printf(HEAD);
printf("Everything else goes heren");
printf(TAIL);

fprintf(stderr, "Sent resp: tid[%s], eaid[%s], tcode[%s]n", tid, eaid, tcode);
}
</string></stdlib></stdio>

Additionally, the makefile:

Continue reading
Older posts Newer posts