Archive

Archive for June, 2014

Desativar IPV6

Ola um post rápido e que não acho interessante mas já tive que fazer isso por necessidade. Desativar o IPv6. Para desativar o suorte IPv6 no Ubuntu e na maioria das distros, edite o aqruivo /etc/sysctl.conf.

net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1

Estas linha adicionadas desativarão o suporte IPv6 em loopback, no padrão por todas as interfaces eth disponíveis. Um reinicio das interfaces redes é necessária:

/etc/init.d/networking restart

Ele modifica na realidade os seguintes arquivos modificando o conteúdo de 0 à 1 :

/proc/sys/net/ipv6/conf/lo/disable_ipv6
/proc/sys/net/ipv6/conf/all/disable_ipv6

/proc/sys/net/ipv6/conf/default/disable_ipv6

Comandos :

echo ‘1’ > /proc/sys/net/ipv6/conf/lo/disable_ipv6
echo ‘1’ > /proc/sys/net/ipv6/conf/all/disable_ipv6
echo ‘1’ > /proc/sys/net/ipv6/conf/default/disable_ipv6

Att.

Advertisements
Categories: Uncategorized

Medindo o tempo de cada volta :P

June 10, 2014 1 comment

Nesse post e mais uma referência e um pre-requisito para um futuro post sobre RRDTool, Estou criando um sistema de monitoramento para plataforma GEPON(um outro post explico o que é GEPON), e estou fazendo uso do RRDTool, e aprender como o tempo flui num sistema Linux/Unix e primordial. Algumas documentações descrevem que o tempo no UNIX e um contador que iniciou no primeiro minuto do dia 01 de janeiro de 1970, de lá pra cá esse contador somente vem aumentando. Como podemos ver esse contador ? Bom existe várias formas, várias linguagem de programação nos dão essa informação mas para começar vamos pro bash. Para visualizar o epoch(é o nome dado a esse sistema de contagem de tempo no Unix, algumas literaturas utilizam o nome timestamp para representar) pode ser visualizado com o comando “date”.

root@shark ~# date +%s
1402330971
root@shark ~# date +%s
1402330972
root@shark ~# date +%s
1402330973
root@shark ~# date +%s
1402330974
root@shark ~# date +%s
1402330975
root@shark ~# date +%s
1402330977
root@shark ~#

 

É possivel obter o epoch de determinado período:

root@apolo:~# date -d “2014/07/25 12:57” “+%s”
1406307420
root@apolo:~#

Repare que o valor final começou em 971 e foi incrementando até 977 e isso pro resto da vida ate completar todas os 32 bits que é um numero inteiro utilizado para representar o epoch. Existe uma expectativa para o epoch durar até 2038. Mas até lá talvez teremos um novo bug do milênio :P.
Existe um site que permite você converter facilmente entre um formato para humanos lerem e outras para as máquinas, http://www.epochconverter.com/ no site também ele possue como obter o valor em algumas
linguagens de programação, vou colocar aqui para referência:

Para obter o epoch em algumas linguagem:

PHP time()
Python import time first, then time.time()
Ruby Time.now (or Time.new). To display the epoch: Time.now.to_i
Perl time more …
Java long epoch = System.currentTimeMillis()/1000;
C# var epoch = (DateTime.UtcNow – new DateTime(1970, 1, 1)).TotalSeconds;
Objective-C [[NSDate date] timeIntervalSince1970]; (returns double) or NSString *currentTimestamp = [NSString stringWithFormat:@”%f”, [[NSDate date] timeIntervalSince1970]];
C++11 double now = std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count();
VBScript/ASP DateDiff(“s”, “01/01/1970 00:00:00”, Now())
AutoIT _DateDiff(‘s’, “1970/01/01 00:00:00”, _NowCalc())
Delphi Epoch := DateTimetoUnix(Now); Tested in Delphi 2010.
R as.numeric(Sys.time())
Erlang calendar:datetime_to_gregorian_seconds(calendar:universal_time())-719528*24*3600.
MySQL SELECT unix_timestamp(now()) more …
PostgreSQL SELECT extract(epoch FROM now());
SQLite SELECT strftime(‘%s’, ‘now’);
Oracle PL/SQL SELECT (SYSDATE – TO_DATE(’01/01/1970 00:00:00′, ‘MM-DD-YYYY HH24:MI:SS’)) *
24 * 60 * 60 FROM DUAL
SQL Server SELECT DATEDIFF(s, ‘1970-01-01 00:00:00’, GETUTCDATE())
JavaScript Math.round(new Date().getTime()/1000.0) getTime() returns time in milliseconds.
Visual FoxPro DATETIME() – {^1970/01/01 00:00:00} Warning: time zones not handled correctly
Adobe ColdFusion
Tcl/Tk clock seconds
Unix/Linux Shell date +%s
PowerShell get-date (get-date).touniversaltime() -uformat “%s”
Other OS’s Command line: perl -e “print time” (If Perl is installed on your system)

Existe também no site a opção para conversão de um formato para outro em python

>>> import time
>>> int(time.mktime(time.strptime(‘2000-01-01 12:34:00’, ‘%Y-%m-%d %H:%M:%S’)))
946740840
>>> time.strftime(“%a, %d %b %Y %H:%M:%S +0000”, time.localtime(946740840))
‘Sat, 01 Jan 2000 12:34:00 +0000’
>>>

Primeiro convertemos o formato humando para epochs e depois de epoch para formato humando 😀
Vou deixar aqui também para referencia as conversões

Converter a partir do formato humano para epoch:

PHP strtotime(“15 November 2012”) (converts most English date texts) or:
date_create(’01/15/2010′)->format(‘U’) (PHP5 DateTime class)
Python import time first, then int(time.mktime(time.strptime(‘2000-01-01 12:34:00’, ‘%Y-%m-%d %H:%M:%S’))) – time.timezone
Ruby Time.local(year, month, day, hour, minute, second, usec ) (or Time.gm for GMT/UTC input). To display add .to_i
Perl Use the Perl Epoch routines
Java long epoch = new java.text.SimpleDateFormat(“MM/dd/yyyy HH:mm:ss”).parse(“01/01/1970 01:00:00”).getTime() / 1000;
VBScript/ASP DateDiff(“s”, “01/01/1970 00:00:00”, time field) More info
AutoIT _DateDiff(‘s’, “1970/01/01 00:00:00”, “YYYY/MM/DD HH:MM:SS”)
Delphi Epoch := DateTimeToUnix(StrToDateTime(myString));
C Use the C Epoch Converter routines
R as.numeric(as.POSIXct(“MM/dd/yyyy HH:mm:ss”, origin=”1970-01-01″))
MySQL SELECT unix_timestamp(time) Time format: YYYY-MM-DD HH:MM:SS or YYMMDD or YYYYMMDD
More on using Epoch timestamps with MySQL
PostgreSQL SELECT extract(epoch FROM date(‘2000-01-01 12:34’));
With timestamp: SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE ‘2001-02-16 20:38:40-08’);
With interval: SELECT EXTRACT(EPOCH FROM INTERVAL ‘5 days 3 hours’);
SQLite SELECT strftime(‘%s’,timestring);
SQL Server SELECT DATEDIFF(s, ‘1970-01-01 00:00:00’, time field)
JavaScript Use the JavaScript Date object
Unix/Linux Shell date +%s -d”Jan 1, 1980 00:00:01″ Replace ‘-d’ with ‘-ud’ to input in GMT/UTC time.

Converter a partir da epoch para formato humano:

PHP date(output format, epoch); Output format example: ‘r’ = RFC 2822 date
Python import time first, then time.strftime(“%a, %d %b %Y %H:%M:%S +0000”, time.localtime(epoch)) Replace time.localtime with time.gmtime for GMT time.
Ruby Time.at(epoch)
Java String date = new java.text.SimpleDateFormat(“MM/dd/yyyy HH:mm:ss”).format(new java.util.Date (epoch*1000));
VBScript/ASP DateAdd(“s”, epoch, “01/01/1970 00:00:00”)
AutoIT _DateAdd(“s”, $EpochSeconds , “1970/01/01 00:00:00”)
Delphi myString := DateTimeToStr(UnixToDateTime(Epoch)); Where Epoch is a signed integer.
C Use the C Epoch Converter routines
Objective-C NSDate * myDate = [NSDate dateWithTimeIntervalSince1970:epoch]; NSLog(@”%@”, date);
R as.POSIXct(epoch, origin=”1970-01-01″, tz=”GMT”)
MySQL FROM_UNIXTIME(epoch, optional output format) Default output format is YYY-MM-DD HH:MM:SS. If you need support for negative timestamps: DATE_FORMAT(DATE_ADD(FROM_UNIXTIME(0), interval -315619200 second),”%Y-%m-%d”) (replace -315619200 with epoch)
PostgreSQL PostgreSQL version 8.1 and higher: SELECT to_timestamp(epoch); More info Older versions: SELECT TIMESTAMP WITH TIME ZONE ‘epoch’ + epoch * INTERVAL ‘1 second’;
SQLite SELECT datetime(epoch_to_convert, ‘unixepoch’); or local timezone: SELECT datetime(epoch_to_convert, ‘unixepoch’, ‘localtime’);
Oracle PL/SQL SELECT to_date(’01-JAN-1970′,’dd-mon-yyyy’)+(1326357743/60/60/24) from dual
Replace 1326357743 with epoch.
SQL Server DATEADD(s, epoch, ‘1970-01-01 00:00:00’)
Microsoft Excel =(A1 / 86400) + 25569 Format the result cell for date/time, the result will be in GMT time (A1 is the cell with the epoch number). For other time zones: =((A1 +/- time zone adjustment) / 86400) + 25569.
Crystal Reports DateAdd(“s”, {EpochTimeStampField}-14400, #1/1/1970 00:00:00#) -14400 used for Eastern Standard Time.
JavaScript Use the JavaScript Date object
Tcl/Tk clock format 1325376000
Unix/Linux Shell date -d @1190000000 Replace 1190000000 with your epoch, needs recent version of ‘date’. Replace ‘-d’ with ‘-ud’ for GMT/UTC time.
PowerShell Function get-epochDate ($epochDate) { [timezone]::CurrentTimeZone.ToLocalTime(([datetime]’1/1/1970′).AddSeconds($epochDate)) }, then use: get-epochDate 1279152364. Works for Windows PowerShell v1 and v2
Other OS’s Command line: perl -e “print scalar(localtime(epoch))” (If Perl is installed) Replace ‘localtime’ with ‘gmtime’ for GMT/UTC time.

E para finalizar o post programadores e desenvolvedores quando vale 1 ano em segungos, 1 mês, etc

 

Formato humano Seconds
1 hora 3600 segundos
1 dia 86400 segundos
1 semana 604800 segundos
1 mês (30.44 dias) 2629743 segundos
1 ano (365.24 dias)  31556926 segundos

Att.

Categories: Uncategorized